【排序算法】希爾排序算法 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;
}
}
}
}
參考文章: