C語言歸併排序

2021-10-21 14:10:41 字數 1125 閱讀 9081

#include

#include

/*description: 歸併排序

author: qingq

datetime: 2023年3月8日20點03分

*/int length;

//待排序陣列長度

int*a;

//待排序陣列

int*b;

//輔助陣列b

void

mergesort

(int

*a,int low,

int high)

;//歸併排序

void

merge

(int

*a,int low,

int mid,

int high)

;//合併子陣列

void

printnums

(int

*a);

//列印陣列

intmain()

mergesort

(a,0

, length -1)

;printnums

(a);

system

("pause");

return0;

}void

merge

(int

*a,int low,

int mid,

int high)

int i, j, k;

//依次挑選兩個子陣列的較小的元素放入原陣列,知道其中乙個被挑完

for(i = low, j = mid +

1, k = i; i <= mid && j <= high; k++

)else

}//將剩餘的那個陣列全部放回原陣列

while

(i <= mid)

while

(j <= high)

}void

mergesort

(int

*a,int low,

int high)

}void

printnums

(int

*a)puts(""

);}

如有錯誤歡迎指正!

C語言歸併排序

描述 給定乙個數列,用歸併排序演算法把它排成公升序。輸入 第一行是乙個整數n n不大於10000 表示要排序的數的個數 下面一行是用空格隔開的n個整數。輸出 輸出排序後的數列,每個數字佔一行。歸併排序有兩個關鍵點 1.將兩個已經排好序的序列進行合併。歸併2個有序序列為1個有序序列 void merg...

C語言 歸併排序

歸併是將兩個或多個存序記錄序列合併成乙個有序序列。一般來說,一次對幾個有序記錄進行歸併,就稱為幾路歸併排序。以二路歸併排序為例,其基本方法如下 1 將 n 個記錄看成是 n 個長度為 1 的有序子表。2 將兩兩相鄰時有序序列進行歸併。3 重複執行步驟 2 直到歸併成乙個長度為 n 的有序表 如下所示...

mysql多路歸併排序 C語言歸併排序演算法

用歸併排序法對一組資料由小到大進行排序,資料分別為 695 458 362 789 12 15 163 23 2 986。實現過程 1 自定義函式 merge 實現一次歸併排序。2 自定義函式 merge sort 實現歸併排序。3 程式 如下 include int merge int r,int...