歸併排序演算法的JAVA實現

2021-04-01 21:31:22 字數 1694 閱讀 4848

package utils.sort;

/***

歸併排序,要求待排序的陣列必須實現

comparable

介面*/

public class mergesort implements sortstrategy

bridge = new comparable[obj.length];//

初始化中間陣列

mergesort(obj, 0, obj.length - 1);//

歸併排序

bridge = null;

}/**

*將下標從

left

到right

的陣列進行歸併排序

*@param obj

要排序的陣列的控制代碼

*@param left

要排序的陣列的第乙個元素下標

*@param right

要排序的陣列的最後乙個元素的下標

*/private void mergesort(comparable obj, int left, int right)

}/**

*將兩個物件陣列進行歸併,並使歸併後為公升序。歸併前兩個陣列分別有序

*@param obj

物件陣列的控制代碼

*@param left

左陣列的第乙個元素的下標

*@param center

左陣列的最後乙個元素的下標

*@param right

右陣列的最後乙個元素的下標

*/private void merge(comparable obj, int left, int center, int right)

else

bridge[third++] = obj[mid++];}//

剩餘部分依次置入中間陣列

while (mid <= right)

while (left <= center)

//將中間陣列的內容拷貝回原陣列

copy(obj, tmp, right);

}/**

*將中間陣列

bridge

中的內容拷貝到原陣列中

*@param obj

原陣列的控制代碼

*@param left

要拷貝的第乙個元素的下標

*@param right

要拷貝的最後乙個元素的下標

*/private void copy(comparable obj, int left, int right)}}

插入排序:http://blog.csdn.net/linyco/archive/2005/10/10/498735.aspx

氣泡排序:http://blog.csdn.net/linyco/archive/2005/10/10/498736.aspx

選擇排序:http://blog.csdn.net/linyco/archive/2005/10/10/498742.aspx

歸併排序:http://blog.csdn.net/linyco/archive/2005/10/10/498746.aspx

希爾排序:http://blog.csdn.net/linyco/archive/2005/10/10/498764.aspx

快速排序:http://blog.csdn.net/linyco/archive/2005/10/10/498759.aspx

歸併排序演算法(Java實現)

求解 遞迴地對兩個子區間a low mid 和 a mid 1 high 進行歸併排序。遞迴的終結條件是子區間長度為1。合併 將已排序的兩個子區間a low mid 和 a mid 1 high 歸併為乙個有序的區間a low high comment 歸併排序演算法 author ron date...

排序演算法 歸併排序 java實現

歸併排序指的是將兩個已經排序的序列合併成乙個序列的操作。主要分為兩種,分別是自頂向下的排序方式和自底向上的排序方式。對於自頂向下的排序演算法 採用分治法進行自頂向下的程式設計方式,分治法的核心思想就是分解 求解 合併。1 將長度為n的無序序列平均分割成兩個子串行 2 對這兩個子串行分別進行歸併排序 ...

歸併排序演算法的JAVA實現

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