算法描述:

希尔排序的思想是使得数组arr 中任意间隔为gap的元素都是有序的。并将这样的数组称为gap有序数组,一个有序数组就是gap个互相独立的有序数组编织在一起组成的数组arr。间隔h也称增量gap,目前最优增量最初取值 gap = (arr.length / 2) + 1,以后依次减半即gap = gap / 2;

        具体实现可参考下列代码

public class ShellSort{     public void shellsrot(Object[] array){         //定义一个增量         int gap;         int j;         for (gap = (array.length / 2) + 1; gap > 0; gap/=2) {             for (int i = grap; i < array.length ; i++) {                 Object temp = array[i];                 for ( j = i; j >= gap && (int)temp < (int)array[j-gap] ; j-=gap) {                     array[j] = array[j-gap];                 }                 array[j] = temp;              }         }     } }