歸併排序模板 ACwing 787

2022-08-21 01:06:10 字數 643 閱讀 2925

歸併排序其實也是分治的思想

首先歸併排序跟快排一樣同樣需要考慮分界點 歸併排序的分界點都是取中間值

其次歸併排序需要遞迴排序左邊和右邊 

最後一部也是最難的一部需要將分開的歸併排序合二為一

#includeusing

namespace

std;

intn;

const

int n= 100010

;int

a[n],tmp[n];//歸併排序需要多定義乙個陣列

void merge_sort(int a,int l,int

r)

while(i<=mid) tmp[k++]=a[i++]; //左半邊還剩下很多較大數,可直接插在陣列後

while(j<=r) tmp[k++]=a[j++]; //右半邊同理

for(int i=l,j=0;i<=r;i++,j++) a[i]=tmp[j];//在將tmp陣列的值給a陣列

}int

main()

新增一副圖增加對歸併排序的理

Acwing 787 歸併排序

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

Acwing 787 歸併排序

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

787 歸併排序

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