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

2021-10-02 12:19:45 字數 1007 閱讀 9760

題目鏈結

題目描述

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

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

輸入

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

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

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

輸出

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

樣例輸入110

10987

6543

21樣例輸出12

3456

78910

#include

const

int maxn =

100010

;int a[maxn]

;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; i < index; i++

) a[l1 + i]

= temp [i];}

void

mergesort

(int a,

int left,

int right)

}int

main()

return0;

}

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

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

Codeup 3105 基礎排序III 歸併排序

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

基礎問題 快速排序 歸併排序

1.快速排序 快速排序是c.r.a.hoare於1962年提出的一種劃分交換排序。它採用了一種分治的策略,通常稱其為分治法 divide and conquermethod 該方法的基本思想是 1 先從數列中取出乙個數作為基準數。2 分割槽過程,將比這個數大的數全放到它的右邊,小於或等於它的數全放到...