歸併排序:歸併演算法應用到分治策略,簡單說就是把乙個答問題分解成易於解決的小問題後乙個個解決,最後在把小問題的一步步合併成總問題的解。這裡的排序應用遞迴來把陣列分解成乙個個小陣列,直到小陣列的數字有序,在把有序的小陣列兩兩合併而成有序的大陣列。
#include
#include
#include
#define n 7
void
merge
(int arr,
int low,
int mid,
int high)
else}if
(left_low <= left_high)
if(right_low <= right_high)
for(i =
0; i < high - low +
1; i++
)free
(tmp)
;return;}
void
merge_sort
(int arr,
unsigned
int first,
unsigned
int last)
return;}
intmain()
;printf
("排序前 \n");
for(i =
0; i)printf
("%d\t"
, a[i]);
merge_sort
(a,0
, n -1)
;// 排序
printf
("\n 排序後 \n");
for(i =
0; i)printf
("%d\t"
, a[i]);
printf
("\n");
system
("pause");
return0;
}
C語言排序演算法之歸併排序
排序演算法中的歸併排序 merge sort 是利用 歸併 技術來進行排序。歸併是指將若干個已排序的子檔案合併成乙個有序的檔案。設兩個有序的子檔案 相當於輸入堆 放在同一向量中相鄰的位置上 r low m r m 1 high 先將它們合併到乙個區域性的暫存向量r1 相當於輸出堆 中,待合併完成後將...
C用語言排序演算法 希爾排序(例項)
希爾排序 在直接插入排序的思想下設定乙個最小增量dk,剛開始dk設定為n 2。進行插入排序,隨後再讓dk dk 2,再進行插入排序,直到dk為1時完成最後一次插入排序,此時陣列完成排序。include 進行插入排序 初始時從dk開始增長,每次比較步長為dk void insrtsort int a,...
mysql多路歸併排序 C語言歸併排序演算法
用歸併排序法對一組資料由小到大進行排序,資料分別為 695 458 362 789 12 15 163 23 2 986。實現過程 1 自定義函式 merge 實現一次歸併排序。2 自定義函式 merge sort 實現歸併排序。3 程式 如下 include int merge int r,int...