算法描述:
希尔排序的思想是使得数组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; } } } }
: