用歸併排序法對一組資料由小到大進行排序,資料分別為 695、458、362、789、12、 15、163、23、2、986。
(1) 自定義函式 merge(),實現一次歸併排序。
(2) 自定義函式 merge_sort(),實現歸併排序。
#include int merge(int r,int s,int x1,int x2,int x3) //自定義實現一次歸併樣序的函式
else
while(i<=x2) //
將x1〜x2範圍內未比較的數順次加到陣列r中
s[k++]=r[i++];
while(j<=x3) //
將x2+l〜x3範圍內未比較的數順次加到陣列r中
s[k++]=r[j++];
return0;
}int merge_sort(int r,int s,int m,int
n)
return0;
}int
main()
請輸入10個數:歸併是將兩個或多個存序記錄序列合併成一個有序序列。695 458 362 789 12 15 163 23 2 986
排序後的順序是:
2 12 15 23 163 362 458 695 789 986
歸併方法有多種,一次對兩個有序記錄序列進行歸併,稱為路歸併排序,也有三路歸併排序及多路歸併排序。本例項是二路歸併排序,基本方法如下:
(1) 將 n 個記錄看成是 n 個長度為 1 的有序子表。
(2) 將兩兩相鄰時有序無表進行歸併。
(3) 重複執行步驟 (2) 直到歸併成一個長度為 n 的有序表。
不管你是轉行也好,初學也罷,進階也可,如果你想學程式設計,進階程式設計師~
【值得關注】我的程式設計學習交流俱樂部!【點選進入】