ACM 歸併排序

2021-06-27 10:50:06 字數 1015 閱讀 9233

/** 

*@descript : 歸併排序

*@author : chenzx

*/#include using namespace std;

const int n = 7;

void print_arry(int * arry, int len)else

}//2. 將剩餘的部分新增到臨時陣列中

while(first1 <= mid)

while(first2 <= last)

// print_arry(temp, last- first + 1);

//3. 將臨時陣列中的內容返回給arry

index = 0;

for (int i = first; i <= last; i++)

delete temp;

}/* 使用遞推將序列first->last 序列進行歸併排序 */

1) 歸併遞迴的一般公式

2) 如圖,在b~d

的過程不斷的進行二分,所以一共有 

logn 

層,加上第一層,所以一共有

1+logn層

3) c表示規模為

1的問題所需要的時間,每層的時間代價和總是

cn  

4) 所以最終結果就是 cn

(1 + logn)

5) 演算法複雜度在nlogn

的量級上

歸併排序(2 路歸併排序)

遞迴寫法 include define maxn 100 void merge int a,int l1,int r1,int l2,int r2 將陣列a的區間 l1,r1 和區間 l2,r2 合併為乙個有序區間 else while i r1 while j r2 for int i 0 i非遞...

python歸併排序 python 歸併排序

排序思路 1.將陣列分成兩組a,b,建立臨時陣列 c,c長度 a b 2.i,j分別屬於a,b 3.若a i b j 將b j 放入c,j 否則 a i 放入c,i 4.迴圈3步驟,將a或b中剩餘的元素放入c,再將c複製到陣列中 5.遞迴3 4直到a,b序列的長度 1 歸併排序 class merg...

排序 歸併排序

歸併 merge 排序法是將兩個 或兩個以上 有序表合併成乙個新的有序表,即把待排序序列分為若干個子串行,每個子串行是有序的。然後再把有序子串行合併為整體有序序列。歸併 將兩個已經排好序的集合合併到乙個集合眾,並且保證新的集合也是有序的。核心點 只有乙個元素的集合是已經排好序的集合。歸併排序是建立在...