java中的希尔排序算法

public static void shellsort(int[] array)
    {
        int n = array.length;
        int d = n / 2;
        while(d > 0)
        {
            for(int i = d ;i < n;i++)
            {
                int j = i - d;
                while(j >= 0 && array[j] > array[j+d])
                {
                    int temp = array[j];
                    array[j] = array[j+d];
                    array[j+d] = temp;
                    j = j - d ;
                }
            }
            d = d / 2;
        }
    }
    
    public static void main(String[] args) {
        int[] array = {100, 45, 17, 36, 21,17, 13, 7};
        System.out.println("数组的长度:" + array.length);
        System.out.println("排序前的数组:"+Arrays.toString(array));
        shellsort(array);
        System.out.println("排序后的数组:"+Arrays.toString(array));
        for(int i : array)
        {
            System.out.print(  i + " ");
        }
    }

 

posted @ 2020-04-14 09:09  若离若不弃  阅读(125)  评论(0编辑  收藏  举报