Codeup 3105 基礎排序III 歸併排序

2021-09-19 08:00:20 字數 765 閱讀 6863

歸併排序是乙個時間複雜度為o(nlogn)的演算法,對於大量資料遠遠優於氣泡排序與插入排序。

這是一道排序練習題,資料量較大,請使用歸併排序完成。

第一行乙個數字n,代表輸入的組數

其後每組第一行輸入乙個數字m,代表待排序數字的個數

其後m行每行乙個資料,大小在1~100000之間,互不相等,最多有10萬個資料。

公升序輸出排好序的資料,每行乙個數字

1

101098

7654

321

123

4567

8910

具體**如下:

#include #include using namespace std;

void merge(int a,int l1,int r1,int l2,int r2)

while(i<=r1)

temp[index++]=a[i++];

while(j<=r2)

temp[index++]=a[j++];

for(int i=0;ia[l1+i]=temp[i];

}int mergesort(int a,int left,int right)

}int main()

mergesort(a,0,m-1);

for(int j=0;jprintf("%d\n",a[j]);}}

return 0;

}

3105問題 B 基礎排序III 歸併排序

歸併排序是乙個時間複雜度為o nlogn 的演算法,對於大量資料遠遠優於氣泡排序與插入排序。這是一道排序練習題,資料量較大,請使用歸併排序完成。第一行乙個數字n,代表輸入的組數 其後每組第一行輸入乙個數字m,代表待排序數字的個數 其後m行每行乙個資料,大小在1 100000之間,互不相等,最多有10...

問題 B 基礎排序III 歸併排序

題目鏈結 題目描述 歸併排序是乙個時間複雜度為o nlogn 的演算法,對於大量資料遠遠優於氣泡排序與插入排序。這是一道排序練習題,資料量較大,請使用歸併排序完成。輸入 第一行乙個數字n,代表輸入的組數 其後每組第一行輸入乙個數字m,代表待排序數字的個數 其後m行每行乙個資料,大小在1 100000...

基礎排序演算法 歸併排序

歸併排序 merge sort 是建立在歸併操作上的一種有效的排序演算法,該演算法是採用分治法 divide and conquer 的乙個非常典型的應用。將已有序的子串行合併,得到完全有序的序列 即先使每個子串行有序,再使子串行段間有序。若將兩個有序表合併成乙個有序表,稱為二路歸併。歸併排序是一種...