歸併排序 Java實現

2021-07-10 10:15:38 字數 1054 閱讀 6316

package com.shusheng.mergesort;

/** * 歸併排序(作圖分析)

*@author administrator

* */

public

class

mergesort

//將between+1到last的元素拷貝到rarray陣列

for (j = 0,temp = between+1;temp<=last;)

//當i和j都沒有移動到盡頭時,對兩個陣列的第i個元素和第j個元素比較

for(i=0,j=0;i//i和j表示larray移動的下標和rarray陣列移動的下標

if(larray[i]<=rarray[j])else

}while(i//當上面的迴圈有乙個已經移動到盡頭(j已經移動到盡頭),就將larray的剩下的值賦值給array,因為larray已經是有序的

array[first++] = larray[i++];

}while(j//當上面的迴圈有乙個已經移動到盡頭(i已經移動到盡頭),就將rarray的剩下的值賦值給array,因為rarray已經是有序的

array[first++] = rarray[j++];}}

/*** 歸併排序的公開函式,

*@param array 原始陣列

*@param first 表示待排區間的第乙個下標

*@param last表示待排區間的最後乙個下標

*/public

static

void

mergesortmethod(int array,int first,int last)

/*** 測試方法

*@param args

*/public

static

void

main(string args) ;

mergesortmethod(args1,0,args1.length-1);

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

}}

歸併排序 Java實現

歸併排序 mergesort 1 思想 多次將兩個或兩個以上的有序表合併成乙個新的有序表。2 演算法時間複雜度 最好的情況下 一趟歸併需要n次,總共需要logn次,因此為o n logn 最壞的情況下,接近於平均情況下,為o n logn 說明 對長度為n的檔案,需進行logn 趟二路歸併,每趟歸併...

Java實現歸併排序

剛開始接觸歸併排序的時候,感覺挺困難的,但是仔細的分析之後,就會發現它的原理還是蠻簡單的 就是借助另外的乙個陣列空間將左右兩側 從中間mid處劃分 已經排序好的原陣列轉到新的陣列空間。如下圖所示 轉移操作時,就是左右所指的資料進行比較,將較小的資料 由小到大排序 儲存到新的陣列空間。如下圖所示 了解...

Java實現歸併排序

思想就是 將陣列分成兩個陣列,如果兩個陣列的元素都是有序的,那麼就可以很方便的將這兩組資料歸併。如果沒有序繼續將兩組陣列分組,以此類推,當組內只有乙個資料時,認為這個小組內已經有序,然後合併相鄰兩個小組就可以。package sort 歸併排序 2015 05 31 public class mer...