演算法 MergeSort的Java實現

2021-07-29 14:38:24 字數 1033 閱讀 4493

top-down mergsort

裡面有個問題一定要注意!在遞迴sort方法中:兩個遞迴呼叫必須是:

sort(a, lo, mid);

sort(a, mid + 1, hi);

而不是!!

sort(a, lo, mid + 1);

sort(a, mid, hi);

為啥呢?因為如果用後一種情況的話如果lo=0, mid=1 =》 下乙個遞迴呼叫中還是lo=0,mid=1

public class mergesort ;		

sort(arr);

string output = "";

for (int i:arr)

system.out.println(output);

system.out.println(3 / 2);

} private static void sort(int a)

private static void sort(int a, int lo, int hi)

int mid = lo + (hi - lo) / 2;

/*** attention!!! cannot write as:

* don't do that: sort(a, lo, mid + 1);

* don't do that: sort(a, mid, hi);

*/sort(a, lo, mid);

sort(a, mid + 1, hi);

merge(a, lo, mid, hi);

}private static void merge(int a, int lo, int mid, int hi)

for (int k = lo; k <= hi; k++)

else if (j > hi)

else if (aux[i] > aux[j])

else

} }

}

演算法導論示例 MergeSort

introduction to algorithms,second edition 2.3 mergesort author 土豆爸爸 public class mergesort public static void merge int array,int p,int q,int r l i in...

歸併 Merge Sort 排序演算法

歸併排序 merge sort 是利用 歸併 技術來進行排序的。歸併是指將若干個已排序的子檔案合併成乙個有序的檔案。1 歸併排序的基本思想 兩個歸併演算法的基本思想 設有兩個有序的子檔案 相當於輸入堆 放在同一向量中相鄰的位置上 a low.m a m 1.high 先將他們合併到乙個暫存的向量te...

資料庫遞迴演算法jav

表結構 欄位1 欄位2 1 02 1 3 14 2 5 26 4 根據父id查詢子id public static arraylist getallsubcateidfromparentcateid string parentid throws exception db.close return l...