程式集 演算法 歸併排序

2021-07-25 15:44:27 字數 1233 閱讀 6420

完全是為了完整性收錄進來,個人感覺完全沒有亮點的排序方式

引用

演算法——快速排序

因為要對已經排序好的陣列進行歸併排序,故引用了上面需要使用到的快速排序

#include

#include

#include

// 歸併演算法,把已經排序的陣列,重新歸併到乙個新的陣列中

void

mergesort

(int array1,

int count1,

int array2,

int count2,

int array)

else

if( j == count2 )

else

array[index]

= array1[i]

< array2[j]

? array1[i++

]: array2[j++];

}}// 獲得隨機的數

void

genrandomdata

(int array,

int count )

}// 列印陣列

void

printarray

(int array,

int count )

printf

("\n");

}// 判斷陣列是否排序的

void

issort

(int array,

int count )

}printf

("array is sort !\n");

}int

main

(int argc,

char

* argv)

;int array2[20]

=;int array[30]

=;genrandomdata

( array1,10)

;genrandomdata

( array2,20)

;qsort

( array1,0,

9);qsort

( array2,0,

19);mergesort

( array1,

10, array2,

20, array )

;issort

( array,30)

;return0;

}

歸併演算法 歸併排序

歸併演算法 歸併排序 這周需要用到歸併演算法,於是找了找相關的資料,整理如下 歸併排序 merge sort 是利用 歸併 技術來進行排序。歸併是指將若干個已排序的子檔案合併成乙個有序的檔案。兩路歸併演算法 1 演算法基本思路 設兩個有序的子檔案 相當於輸入堆 放在同一向量中相鄰的位置上 r low...

歸併排序演算法

include stdafx.h include include include 合併兩段已經排好序的列表 void merge int list int mergelist int left int mid int right else if i mid else 將列表list按照seglen分...

歸併排序演算法

這個演算法感覺比插入難理解一些,下面說說我的理解 歸併排序的步驟 1.把長度為n的序列分為兩個長度為n 2的子串行 2.對這兩個子串行分別採用歸併排序 3.將兩個子串行合併成乙個最終的排序序列 通過步驟2可看到 在歸併排序中又用了歸併排序,可見這是乙個遞迴的過程。例如乙個陣列 a 8 下面採用遞迴排...