acwing AcWing 787 歸併排序

2021-10-22 23:19:30 字數 1154 閱讀 3520

給定你乙個長度為 n

的整數數列。

請你使用歸併排序對這個數列按照從小到大進行排序。

並將排好序的數列按順序輸出。

輸入格式

輸入共兩行,第一行包含整數 n

。第二行包含 n

個整數(所有整數均在 1∼109

範圍內),表示整個數列。

輸出格式

輸出共一行,包含 n

個整數,表示排好序的數列。

資料範圍

1≤n≤100000

輸入樣例:

53 1 2 4 5

輸出樣例:

1 2 3 4 5

#include

using namespace std;

const

int n=

100005

;int q[n]

,tmp[n]

,n;void

gb_sort

(int q,

int l,

int r)

int mid=

(l+r)/2

;gb_sort

(q,l,mid)

;gb_sort

(q,mid+

1,r)

;int i=l;

int j=mid+1;

int k=0;

while

(i<=mid && j<=r)

else

}while

(i<=mid)

while

(j<=r)

for(

int i=l,j=

0;i<=r;i++

,j++)}

intmain()

gb_sort

(q,0

,n-1);

for(

int i=

0;i)return0;

}

先把先後兩部分排序,然後把前後兩部分歸併

for

(int i=l,j=

0;i<=r;i++

,j++

)

賦值的時候,temp排好序的數是屬於q中下標l到r的數,賦值後q中l到r就是temp排好序的數。

787 歸併排序

題目描述 給定你乙個長度為n的整數數列。請你使用歸併排序對這個數列按照從小到大進行排序。並將排好序的數列按順序輸出。輸入格式 輸入共兩行,第一行包含整數 n。第二行包含 n 個整數 所有整數均在1 109範圍內 表示整個數列。輸出格式 輸出共一行,包含 n 個整數,表示排好序的數列。資料範圍 1 n...

gfoj Problem 787 密室逃脫

problem 787 密室逃脫 time limit 2000 ms memory limit 524288 kb problem description 小j被關在密室裡!密室的構造是乙個h w的棋盤,即有h行w列,第i行第j列的房間用ai,j 表示。若ai,j 則該房間的門是鎖上的 若ai,j...

Acwing 787 歸併排序

歸併排序步驟 1.確定分界點 按照中間位置分為兩段 2.遞迴處理兩段區間 3.合併兩段處理後有序區間 歸併 include using namespace std const int maxn 100005 int value maxn int temp maxn 臨時儲存合併陣列 歸併排序 voi...