排序算法之--shell排序

版权声明:版权所有,转载请注明出处,谢谢 https://blog.csdn.net/YinFengLuoYe201314/article/details/84387765

package Sort;

public class shellSort {

    public static void main(String[] args) {
        int[] arr={1,4,5,7,6,9,8,2,3};
        int inc=1;
        while(inc<=(arr.length/3)){
            inc=inc*3+1;
        }
        while(inc>0){
            for(int i=inc;i<arr.length;i+=inc){
                if(arr[i]<arr[i-inc]){
                    int temp=arr[i];
                    int j=i-inc;
                    while(j>=0&&arr[j]>temp){
                        arr[j+inc]=arr[j];
                        j-=inc;
                    }
                    arr[j+inc]=temp;
                }
            }
            inc=(inc-1)/3;
        }
        for(int x:arr){
            System.out.print(x+" ");
        }

    }

}
 

猜你喜欢

转载自blog.csdn.net/YinFengLuoYe201314/article/details/84387765