排序演算法之歸併排序及Java實現

2021-08-19 07:26:44 字數 755 閱讀 4283

選擇排序(直接選擇排序,堆排序)

交換排序(氣泡排序,快速排序)

插入排序(直接插入排序,希爾排序)

歸併排序

桶式排序

基數排序

歸併排序利用的是分治的思想實現的,對於給定的一組資料,利用遞迴與分治技術將資料序列劃分成為越來越小的子串行,之後對子序列排序,最後再用遞迴方法將排好序的子串行合併成為有序序列。合併兩個子串行時,需要申請兩個子串行加起來長度的記憶體,臨時儲存新的生成序列,再將新生成的序列賦值到原陣列相應的位置。

public

class

mergesort

}private

static

void

merge(int arr, int left, int mid, int right) else

}while(i<=mid)

while(j<=right)

//將temp中的元素全部拷貝到原陣列中

for (int k2 = 0; k2 < temp.length; k2++)

}public

static

void

main(string args);

mersort(test,0,test.length-1);

for(int i=0; i" ");}}

}

測試結果

2 3 5 6 7 9 10 11 12

java排序演算法 歸併排序

歸併排序是建立在歸併操作上的一種有效的排序演算法。該演算法是採用分治法 divideand conquer 的乙個非常典型的應用。在討論歸併排序演算法之前,先來看乙個小問題,對於兩個有序陣列,如何合併成乙個有序陣列問題。public static voidmerge intaa,intbb else...

排序演算法 歸併排序 (java)

歸併排序,顧名思義,就是將資料進行合併,我們首先將待排陣列分成兩個子串行,然後在對其單個序列進行排序,不斷遞迴到只有兩個元素的子串行,然後再向上返回,最中得到的是兩個有序的子串行,最後我們通過乙個輔助陣列,遍歷這兩個陣列,挑選出較小的元素將其放在輔助陣列中,這樣我們就會在輔助陣列中將數排好序了,然後...

Java排序演算法 歸併排序

歸併排序 merge 是將兩個 或兩個以上 有序表合併成乙個新的有序表,即把待排序序列分為若干個子串行,每個子串行是有序的。然後再把有序子串行合併為整體有序序列。歸併排序是建立在歸併操作上的一種有效的排序演算法。該演算法是採用分治法 divide and conquer 的乙個非常典型的應用。將已有...