歸併排序演算法的JAVA實現

2021-04-22 06:58:22 字數 1287 閱讀 5046

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)}}

歸併排序演算法(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...