歸併排序心得

2021-10-25 08:14:32 字數 575 閱讀 9284

歸併排序

歸併方法:

public abstract class mergesort> extends sort f

or (int k = l; k <= h; k++) else if (j > h) else if (aux[i].compareto(aux[j]) <= 0) else }}

}

歸併:

先分兩個陣列 分別排序

再進行歸併

5 6 7 3

兩邊排序後

5 6 3 7

1.l=0 h=3 m=1

2.i=0 j=2

3.num[0]=3 j=3 0

4.num[1]=5 i=1 1

5 6 7 3

3 55.num[2]=6 i=2 2

6.num[3]=7 j=4 3

每次都是比排好的兩個陣列的最小值區最小的放入陣列

i和j是倆指標可以少申請很多空間

i>m或者j>h 則表示一邊已經排完了 剩下的直接排入即可

還分從上到下歸併和從下到上歸併就是先整合大的和先整合小的區別

歸併排序演算法心得

void merge int array,int first,int mid,int last else index while first2 last2 1 while first1 last1 2 cout endl for index first index last index 這裡inde...

歸併排序(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...