您当前的位置: 首页 > 

宝哥大数据

暂无认证

  • 0浏览

    0关注

    1029博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

八大排序--- 希尔排序(最小增量排序)

宝哥大数据 发布时间:2017-03-19 14:25:18 ,浏览量:0

八种排序的关系:

这里写图片描述

一、基本思想

算法先将要排序的一组数按某个增量d(n/2,n为要排序数的个数)分成若干组,每组中记录的下标相差d.对每组中全部元素进行直接插入排序,然后再用一个较小的增量(d/2)对它进行分组,在每组中再进行直接插入排序。当增量减到1时,进行直接插入排序后,排序完成。

这里写图片描述

package com.chb.sort;


/**
 * 希尔排序(最小增量排序)
 * 增量d=n/2的序列进行 直接插入排序
 * d减小 直至d=1排序结束
 * 
 */
public class ShellSort {

    public static void main(String[] args) {
        shellSort(a);
    }
    static  int a[]={1,54,6,3,78,34,12,45,56,100};
    public static void shellSort(int[] a){
        int d = a.length;
        while(true) {
            d = (int) Math.ceil(d/2);
            for (int i = 0; i = j && a[k] > insertNum){
                        a[k+d] =a[k];
                        k-=d;
                    }//跳出循环 a[k] < insertNum, 
                    //所以k后面的是要插入的位置
                    //if ((k+d)!= j) {
                        a[k+d] = insertNum;
                    //}
                }
            }
            if (d == 1) {
                break;
            }
        }
        for (int i = 0; i < a.length; i++) {
            System.out.print(a[i]+"  ");
        }
    }

}
关注
打赏
1587549273
查看更多评论
立即登录/注册

微信扫码登录

0.0429s