使用Java實現希爾排序算法
希爾排序是插入排序的改進版,通過分組插入減少逆序時的移動次數。核心是引入步長(Gap),將數組分Gap個子序列,對各子序列插入排序後,逐步縮小Gap至1(等價普通插入排序)。算法步驟:初始化Gap爲數組長度一半,對每個子序列執行插入排序,再縮小Gap重複直至爲0。Java實現中,外層循環控制Gap從n/2遞減,內層循環遍歷元素,用臨時變量保存當前元素,向前比較並移動元素至正確位置完成插入。測試數組{12,34,54,2,3}排序後爲[2,3,12,34,54]。其通過分組逐步有序化提升效率,可優化步長序列(如3k+1)進一步提升性能。
閱讀全文