希尔排序-阿里云开发者社区

开发者社区> 一条coding> 正文

希尔排序

简介: 希尔排序
+关注继续查看
public static void main(String[] args) {
        int a[]={12,3,55,58,47,83,21,7,39,75};
        sort(a);
    }
    public static void sort(int[] a){
//        /增量gap,并逐步缩小增量
        for (int gap = a.length/2; gap >0 ; gap/=2) {
//            while (gap < len / 3) {          // 动态定义间隔序列
//                gap = gap * 3 + 1;
//            }
//            //从第gap个元素,逐个对其所在组进行直接插入排序操作
            for (int i = gap; i <a.length ; i++) {
                int j=i;
                int t=a[i];
//                 //移动法
                    while(j-gap>=0&&t<a[j-gap]){
                        a[j]=a[j-gap];
                        j-=gap;
                    }
                    a[j]=t;
            }
        }
        System.out.println(Arrays.toString(a));
    }

原理:

缩小增量

希尔排序属于插入类排序,是将整个有序序列分割成若干小的子序列分别进行插入排序。


排序过程:先取一个正整数d1<n,把所有序号相隔d1的数组元素放一组,组内进行直接插入排序;然后取d2<d1,重复上述分组和排序操作;直至di=1,即所有记录放进一个组中排序为止。


版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
阿里云服务器怎么设置密码?怎么停机?怎么重启服务器?
如果在创建实例时没有设置密码,或者密码丢失,您可以在控制台上重新设置实例的登录密码。本文仅描述如何在 ECS 管理控制台上修改实例登录密码。
10092 0
python实现希尔排序算法
希尔排序是插入排序的一种又称“缩小增量排序”,是直接插入排序算法的一种更高效的改进版本。希尔排序是非稳定排序算法。 希尔排序是把记录按下标的一定增量分组,对每组使用直接插入排序算法排序;随着增量逐渐减少,每组包含的关键词越来越多,当增量减至1时,整个文件恰被分成一组,算法便终止。
1151 0
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,阿里云优惠总结大概有三种登录方式: 登录到ECS云服务器控制台 在ECS云服务器控制台用户可以更改密码、更换系.
13893 0
从零开始_学_数据结构(六)——排序(冒泡、插入、希尔、简单选择、归并、快速)
一、冒泡排序: (1)思想是: 从第1个开始,1和2比,2和3比,3和4比,如果前面比后面大,则互相交换之,一直到n-1和n进行比。这是第一轮。 然后第二轮再从第1个开始,2和3比,3和4比,再一直比到n-1和n,比的时候符合条件(前大后小)则交换。 然后一直到从n-1个开始,最后比较一次n-1和n。 因此,时间复杂度是O(n2);   代码: #include&lt;i
1110 0
算法笔记--希尔排序
希尔排序是直接插入排序的改进版,对于待排序序列的不同情况效率相近。 1. 算法思想           先选取一个小于n的增量d1,把序列中所有元素分成d1个组,所有距离为d1的倍数的元素在同一组中,在各组内执行直接插入排序。
714 0
希尔排序(shell‘ sort)
希尔排序是1959 年由D.L.Shell 提出来的,相对直接排序有较大的改进。希尔排序又叫缩小增量排序 基本思想: 先将整个待排序的记录序列分割成为若干子序列分别进行直接插入排序,待整个序列中的记录“基本有序”时,再对全体记录进行依次直接插入排序。
622 0
希尔排序 | 算法必看系列九
本文介绍了希尔排序的基本思想、优化以及代码的实现,包括后面两个增量序列的选择。增列序列的选择方式对希尔排序也很重要,直接影响到希尔排序的性能。
777 0
+关注
121
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载