希尔排序【移动法】

  • Post author:
  • Post category:其他


import java.text.SimpleDateFormat;
import java.util.Arrays;
import java.util.Date;

public class ShellSort {

    public static void main(String[] args) {

        int[] array = {0, -2, 3, 8, 1, 7, 2, 5};
        System.out.println("待排序的数据为:" + Arrays.toString(array));
        Date start = new Date();
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        System.out.println("start   :"+simpleDateFormat.format(start));
        shellSort(array);
        Date end = new Date();
        System.out.println("end   :"+simpleDateFormat.format(end));
        System.out.println("排序过后的数据为:" + Arrays.toString(array));
    }

    /*
    移动法
     */
    public static void shellSort(int[] array) {
        int len = array.length;
        int temp = 0;
        for (int gap = len / 2; gap >= 1; gap /= 2) {
            for (int i = gap; i < len; i++) {
                int insertIndex = i - gap;
                int insertValue = array[i];
                while(insertIndex>=0 && insertValue < array[insertIndex]){
                    array[insertIndex + gap] = array[insertIndex];
                    insertIndex -= gap;
                }
                array[insertIndex + gap] = insertValue;
            }
        }
    }

}

在这里插入图片描述



版权声明:本文为ytc958374686原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。