希尔排序是对直接插入排序的改进。直接插入排序是无距离的比较,
而希尔排序是将数组分距离比较,直到这个距离为1为止。
private static void xierSort(int[] a){
int temp,j;
int gap = a.length;
do{
gap = gap/3 + 1;
for (int i = gap; i < a.length; i++) {
if(a[i] < a[i-gap]){
temp = a[i];
for (j = i-gap; j >= 0 && temp < a[j]; j-=gap) {
a[j+gap] = a[j];
}
a[j+gap] = temp;
}
}
}while(gap > 1);
}