資料結構和演算法之歸併排序

2021-10-01 14:25:17 字數 1080 閱讀 6062

思想: 分治策略(就是分治法是將大問題劃分成乙個乙個的小模組採用遞迴求解;而治的階段就是在分的階段進行一些 「修補」 的行為 即分而治之)

步驟和相關**:

1·先將陣列中的資料用遞迴演算法分解成小模組的資料(也就是將大問題分解成小問題)

//將陣列中的資料進行分治

public static void mergesort(int arr,int left,int right,inttemp)else

}//(2)當上面的迴圈跳出後,就是還有一邊的陣列還沒有走完,進行將剩餘的數全部拷貝進temp陣列中

while(i<=mid)

while(j<=right)

//(3)將temp的陣列中的數拷貝或arr陣列,這時候的temp的下標已經不為0了,所以要重新將t值賦值為0

t=0;

int templeft=left;//為了不讓left一定,建立乙個變數,讓其移動即可

while(templeft<=right)

}

3·將完成的排序功能加在遞迴分解的部長中也就是分+並

//分+合併

public static void mergesort(int arr,int left,int right,inttemp);

system.out.println("排序之前的陣列:"+arrays.tostring(arr));

inttemp=new int[arr.length];

mergesort(arr,0,arr.length-1,temp);

system.out.println("排序之後的陣列:"+arrays.tostring(arr));}}

執行結果如下所示:

資料結構 排序演算法之歸併排序

基本思想 將待排序的元素序列分成兩個等長的子串行,再將子串行劃分子串行,直到子串行中只有乙個元素就不用在對子序列繼續進行劃分,將劃分的每個區塊,進行排序,然後再將其歸併到乙個序列中,直到將所有的子串行歸併完成之後,則這個序列就完成了排序。1 基本思想如下所示 經過上面的劃分,從而可以看出經過劃分與歸...

資料結構 排序演算法之歸併排序

演算法思想 歸併排序是利用歸併的思想實現的排序方法,該演算法採用 分而治之 的思想將問題分成一些小的問題然後遞迴實現,最後合而為之。實現 遞迴實現 void merge int arr,const int left,const int mid,const int right,int temp whi...

資料結構之歸併排序

介紹 歸併排序是建立在歸併操作上的一種有效的排序演算法,效率為o nlogn 歸併排序的實現分為遞迴實現與非遞迴 迭代 實現。遞迴實現的歸併排序是演算法設計中分治策略的典型應用,我們將乙個大問題分割成小問題分別解決,然後用所有小問題的答案來解決整個大問題。非遞迴 迭代 實現的歸併排序首先進行是兩兩歸...