歸併排序(Java實現)

2021-07-23 16:47:53 字數 946 閱讀 8209

// 名稱:歸併排序

// 學校:河北大學

public

class o1014;

// 宣告乙個整形陣列,長度和array相同,存放臨時資料

int temp = new

int[array.length];

printarray(array);

iteration(array, temp, 0, array.length - 1);

printarray(array);

}// 列印陣列

public

static

void printarray(int array)

system.out.println();

}// 一次歸併

public

static

void merge(int array, int temp, int left, int middle, int right)

else

}// 當左指標仍未到達末尾,右指標已經遍歷到末尾時

// 將左邊陣列中剩下的元素移動到臨時陣列中

while(left <= leftend)

// 當右指標仍未到達末尾,左指標已經遍歷到左邊陣列末尾時

// 將右邊陣列中的元素送入臨時陣列中

while(rightbegin <= right)

// 由高位到低位依次將臨時陣列裡的值移到array陣列中

for(int i = 0; i < number; i++, right--)

}// 遞迴呼叫

public

static

void iteration(int array, int temp, int left, int right)

}}

可能我腦子太笨,這個程式琢磨了一下午才寫出來,希望多與大家切磋交流~

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