【排序算法】希爾排序算法 Java實現。本站提示廣大學習愛好者:(【排序算法】希爾排序算法 Java實現)文章只能為提供參考,不一定能成為您想要的結果。以下是【排序算法】希爾排序算法 Java實現正文
希爾排序算法是按其設計者希爾(Donald Shell)的名字命名,該算法由1959年公布,是插入排序的一種更高效的改進版本。
希爾排序是基於插入排序的以下兩點性質而提出改進方法的:
public class ShellSorter { public void sort(int[] array) { int d = array.length; do { d /= 2; shellPass(array, d); } while (d > 1); } private void shellPass(int[] array, int d) { // 直接插入排序 for (int i = d; i < array.length; i++) { int tmp = array[i]; if (array[i] < array[i - d]) { // 對同一個組的兩個數進行比較,如果前面的數大於後面的數的話,交換位置 int j; for (j = i - d; j >= 0 && tmp < array[j]; j -= d) { array[j + d] = array[j]; } array[j + d] = tmp; } } } }
參考文章: