希尔排序

2018-07-24  本文已影响0人  mrjunwang

希尔排序就是把数列进行分组(不停使用插入排序),直至从宏观上看起来有序,最后插入排序起来就容易了(无须多次移位或交换)。

public int[] shellSort(int a[]){
        for(int gap=a.length/2;gap>0;gap=gap/2){
            for(int i=gap; i<a.length;i++){
                int j=i;
                while(j-gap>=0&& a[j-gap]>a[j]){
                    swap(a, j-gap, j);
                    j=j-gap;
                }
            }
            System.out.println("gap:"+gap+","+Arrays.toString(a));
        }
        return a;
    
    }
上一篇 下一篇

猜你喜欢

热点阅读