希爾排序運用了直接插入排序的思想,但不是一步步的移動,而是跳躍式的移動。
注意:增量序列的最後乙個增量值必須為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 想呼叫它試試,卻發現 錯誤原因在於紅色 注釋處的判斷條件,...