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