Sort ----- Hill Sort (java)


public class ShellSort {
    public static void main(String args[]){
        int a[] = {10,23,5,2,112,34,22,99,0,45,1};
        int N = a.length;
        int h = 1;
        while(h<N/3){h = h*3+1;};//1 4 13 ...
        while(h>=1){
            /** Turn the array into h-ordered */
            for(int i=h;i<a.length;i++){
                for(int j=i;j>=h && less(a,j-h,j);j-=h){
                    exchange(a,j,j-h);
                }
            }
            h = h/3;
        }
        sort(a);
        show(a);
    }

    private static void sort(int[] a) {

    }

    private static void exchange(int[] a, int m, int n) {
        int temp = a[n];
        a[n] = a[m];
        a[m] = temp;
    }

    private static boolean less(int[] a, int m, int n) {
        if(a[m] >a[n]){
            return true;
        }
        return false;
    }

    private static void show(int[] a) {
        System.out.print("Sort result");
        for(int i=0;i<a.length;i++){
            System.out.print(a[i]+",");
        }
    }
}


Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=325618717&siteId=291194637