排序算法之希尔排序

希尔排序是对直接插入排序的改进。直接插入排序是无距离的比较,
而希尔排序是将数组分距离比较,直到这个距离为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);
    }

你可能感兴趣的:(排序算法之希尔排序)