希爾排序演算法的JAVA實現

2021-04-01 21:31:22 字數 1155 閱讀 7580

package utils.sort;

/***

希爾排序,要求待排序的陣列必須實現

comparable

介面*/

public class shellsort implements sortstrategy

//初始化步長

initgap(obj);

//步長依次變化(遞減)

for (int i = increment.length - 1 ;i >= 0 ;i-- )

//因為之前的位置必定已經比較過,所以這裡直接退出迴圈

else}}

}}

/***

根據陣列的長度確定求增量的公式的最大指數

,公式為

pow(4, i) - 3 * pow(2, i) 

+ 1和

9 * pow(4, i) - 9 * pow(

2, i) + 1

*@return int

兩個公式的最大指數

*@param length

陣列的長度

*/private int initexponent(int length)

exp[0]--;

while (gap[1] < length)

exp[1]--;

return exp;

}private void initgap(comparable obj)

else}}

}插入排序: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希爾排序演算法實現

希爾排序嚴格來說是基於插入排序的思想,又被稱為縮小增量排序。具體流程如下 1 將包含n個元素的陣列,分成n 2個陣列序列,第乙個資料和第n 2 1個資料為一對.2 對每對資料進行比較和交換,排好順序 3 然後分成n 4個陣列序列,再次排序 4 不斷重複以上過程,隨著序列減少並直至為1,排序完成。假如...

希爾排序演算法Java實現

希爾排序演算法是插入排序的一種改進,希爾排序將陣列的下標按照一定的增量排序,將乙個陣列分成幾個部分,對其中各個部分都只用使用插入排序的思想,當在當前增量情況下各個部分排序完成,則按照一定規則縮小增量,直至增量為一時,陣列就只有乙個部分,完成這部分的排序即可完成陣列的排序。增量選取無硬性要求,在這裡增...

希爾排序演算法的JAVA實現

package utils.sort 希爾排序,要求待排序的陣列必須實現 comparable 介面 public class shellsort implements sortstrategy 初始化步長 initgap obj 步長依次變化 遞減 for int i increment.leng...