經典排序之歸併排序

2021-06-05 23:11:51 字數 853 閱讀 5053

package 歸併排序;

/** 歸併排序的思想:將陣列從中間分開,然後利用遞迴的方法將左右子串行均拆開

* 再借助乙個陣列歸併左右序列,排序是在歸併時進行的,最後將資料複製到原始陣列中

*/public class mergesort ;

public static void main(string args)

return;

}//陣列中與元素較多時使用歸併排序

mergesort(array, 0, array.length - 1);

//列印結果

for (int i = 0; i < array.length; i++)

system.out.println();

}//具體的歸併排序方法

public static void mergesort(int a, int first, int last)

else else

}// 乙個子陣列已經全部複製到臨時陣列中了,然後將另一陣列中剩下的元素複製到臨時陣列中

while (beginhalf1 <= endhalf1)

while (beginhalf2 <= endhalf2)

//複製回去

for(int z=0;z}//end else

}//選擇排序

public static void selectsort(inta)

}public static int selectminindexofarray(inta,int i)

}return minindex;

}public static void swap(inta,int i,int j)

}

經典排序之歸併排序

歸併排序,其的基本思路就是將陣列分成二組a,b,如果這二組組內的資料都是有序的,那麼就可以很方便的將這二組資料進行排序。如何讓這二組組內資料有序了?可以將a,b組各自再分成二組。依次類推,當分出來的小組只有乙個資料時,可以認為這個小組組內已經達到了有序,然後再合併相鄰的二個小組就可以了。這樣通過先遞...

經典排序之歸併排序

include include include include 分治法排序 1 分解。2 解決。3 合併。void merge int a,int p,int q,int r else void divide int a,int length int main int length sizeof a...

經典排序 歸併排序

歸併排序是利用歸併的思想實現的排序方法,該方法採用經典的分治策略 分治法將問題分成一些小的問題然後遞迴求解,而治的階段則是將分的階段得到的答案修補在一起,即分而治之 下面我們以待排序陣列 8,4,5,7,1,3,6,2,9,10為例,以 的方式講解歸併排序的原理。從圖中可以看出,歸併排序是先將陣列進...