歸併演算法的Java實現

2021-07-27 15:56:19 字數 582 閱讀 1502

歸併演算法是分治思想的經典應用,其基本思想就是將兩個有序的表合併成為乙個有序表。

//實現將a、b兩個陣列合併到c陣列

public void merge(int a, int b, int c)

private static void sort(int nums, int from, int to, int temp)

} private static void merge(int nums, int from, int mid, int to, int temp) else

} while(first<=fe)

while (second<=se)

for(int i=0;i歸併排序的效率是比較高的,設數列長為n,將數列分開成小數列一共要logn步,每步都是乙個合併有序數列的過程,時間複雜度可以記為o(n),故一共為o(n*logn)。因為歸併排序每次都是在相鄰的資料中進行操作,所以歸併排序在o(n*logn)的幾種排序方法(快速排序,歸併排序,希爾排序,堆排序)也是效率比較高的。

另外,採用只分配乙個輔助陣列,然後將該陣列作為形參傳遞進函式呼叫的方式也可以減少空間分配帶來的耗時。

參考文章:

歸併排序演算法的JAVA實現

package utils.sort 歸併排序,要求待排序的陣列必須實現 comparable 介面 public class mergesort implements sortstrategy bridge new comparable obj.length 初始化中間陣列 mergesort o...

歸併排序演算法的JAVA實現

package utils.sort 歸併排序,要求待排序的陣列必須實現 comparable 介面 public class mergesort implements sortstrategy bridge new comparable obj.length 初始化中間陣列 mergesort o...

歸併排序演算法的JAVA實現

package utils.sort 歸併排序,要求待排序的陣列必須實現comparable介面 public class mergesort implements sortstrategy bridge new comparable obj.length 初始化中間陣列 mergesort obj...