码迷,mamicode.com
首页 > 编程语言 > 详细

希尔排序

时间:2020-07-16 21:53:38      阅读:58      评论:0      收藏:0      [点我收藏+]

标签:ext   sys   mil   oid   排序   code   http   ati   mic   

希尔排序

希尔排序法基本思想

希尔排序是把记录按下标的一定增量分组,对每组使用直接插入排序算法排序;随着增量逐渐减少,每组包含的关键词越来越多,当增量减至1时,整个文件恰被分成一组,算法便终止

技术图片

技术图片

public class ShellSort {
    public static void main(String[] args) {
        shellSort(creat());
    }

    public static int[] creat() {

        int[] arr = new int[10000000];
        for (int i = 0; i < arr.length; i++) {
            arr[i] = new Random().nextInt(500000);
        }
        return arr;
    }
    public static void shellSort(int [] arr){
        long star=System.currentTimeMillis();
        for (int step = arr.length; step >0 ; step/=2) {
            for (int j = step; j <arr.length ; j++) {
               int temp=arr[j];
               int index=j;
               while (index-step>=0&&temp<arr[index-step]){
                   arr[index]=arr[index-step];
                   index-=step;
               }
               arr[index]=temp;
            }

        }
        long end=System.currentTimeMillis();
        System.out.println(end-star);

    }
}

希尔排序

标签:ext   sys   mil   oid   排序   code   http   ati   mic   

原文地址:https://www.cnblogs.com/huangshen/p/13324451.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!