資料結構之希爾排序的java實現

2021-09-24 10:44:18 字數 447 閱讀 8911

希爾排序運用了直接插入排序的思想,但不是一步步的移動,而是跳躍式的移動。

注意:增量序列的最後乙個增量值必須為1

1.實現和測試

public class shellsort ;

system.out.println(arrays.tostring(shellsort(a)));

}/**

* 希爾排序

* @param arr

* @return

*/private static int shellsort(int arr)

arr[j+increment] = temp;}}

}while(increment > 1);

return arr;

}}

2.測試結果:

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

Java資料結構之希爾排序

希爾排序借用了插入排序,演算法先將要排序的一組數按某個增量gap n 2,n為要排序數的個數 分成若干組,每組中記錄的下標相差gap.對每組中全部元素進行直接插入排序,然後再用乙個較小的增量 gap 2 對它進行分組,在每組中再進行直接插入排序。當增量減到1時,進行直接插入排序後,排序完成。clas...

java資料結構之希爾排序

希爾排序也成為 縮小增量排序 其基本原理是,現將待排序的陣列元素分成多個子串行,使得每個子串行的元素個數相對較少,然後對各個子串行分別進行直接插入排序,待整個待排序列 基本有序 後,最後在對所有元素進行一次直接插入排序。因此,我們要採用跳躍分割的策略 將相距某個 增量 的記錄組成乙個子串行,這樣才能...

java資料結構排序之希爾排序實現

早上鮮血來潮想寫個希爾排序演算法,發現發生了錯誤,一直不解,最初寫的 如下所示 static void shellsort int datalist,int dk else datalist flag temp print datalist 想呼叫它試試,卻發現 錯誤原因在於紅色 注釋處的判斷條件,...