希尔排序法

从零搭建企业网络:使用Packet Tracer模拟多区域OSPF组网全过程 本文通过Cisco Packet Tracer模拟,详细演示了从零搭建一个典型企业多区域OSPF网络的完整流程。内容涵盖网络拓扑规划、IP地址设计、多区域划分原理,并提供了从设备初始化、接口配置到OSPF多区域核心配置与验证的详细步骤。文章旨在帮助网络学习者与IT支持人员通过动手实验,将理论知识转化为实际的配置与排障能力。 阅读详情

希尔排序是将数据分组,将每一组进行插入排序。
每一组排成有序后,最后整体就变有序了。

希尔排序的实质就是分组插入排序,该方法又称递减增量排序算法,因DL.Shell于1959年提出而得名。希尔排序是非稳定的排序算法。

1. 基本思想

先将整个待排元素序列分割成若干个子序列(由相隔某个“增量”的元素组成的)分别进行直接插入排序,然后依次缩减增量再进行排序,待整个序列中的元素基本有序(增量足够小)时,再对全体元素进行一次直接插入排序。

因为直接插入排序在元素基本有序的情况下(接近最好情况),效率是很高的,因此希尔排序在时间效率上比前两种方法有较大提高。

2. 实现逻辑

① 先取一个小于n的整数d1作为第一个增量,把文件的全部记录分成d1个组。
② 所有距离为d1的倍数的记录放在同一个组中,在各组内进行直接插入排序。
③ 取第二个增量d2小于d1重复上述的分组和排序,直至所取的增量dt=1(dt小于dt-l小于…小于d2小于d1),即所有记录放在同一组中进行直接插入排序为止。
GEOS-Chem笔记——模式下载安装+驱动数据+运行流程 看过我博客的会发现我写了很多CESM的笔记,但是说实话,平时科研我其实更多时候是GEOS-Chemuser。之所以写了很多CESM笔记,其实是因为不会,就边学边写。然后GEOS-Chem已经用比较熟了,所以也没想过做笔记啥的。但是我发现越来越多朋友私信我各种CESM问题,我觉得我可能给大家营造了一种我是CESM达人的错觉。感觉自己有点跑偏了呢。公平起见,我觉得我有必要补充点GEOS-Chem笔记。 GEOS-Chem是研究大气化学的人常用的大气化学传输模式,在全世界范围的大气化学研究组中被广泛使用。不过. 阅读详情

相关推荐

图解算法系列(十五):希尔排序法

我们知道当原始记录的键值大部分已经排好顺序的情况下,插入排序法会非常有效率,因为它不需要执行太多的数据搬移操作。“希尔排序法”是D.L.Shell在1959年7月所发明的一种排序法,可以减少插入排序法中数据搬移的次数,以加速排序的进行。排序的原则是将数据区块分成特定间隔的几个小区块,以插入排序法排完区块内的数据后再渐渐减少间隔的距离。 下面我们用63,92,27,36,45,71,58,7数列从大...

人生代码 ---- 公众号 3057

希尔排序法的使用

希尔排序法的使用 希尔排序法的背景: 希尔排序按其设计者希尔(Donald Shell)的名字命名,该算法由希尔1959年公布。一些老版本教科书和参考手册把该算法命名为Shell-Metzner,即包含Marlene Metzner Norton的名字,但是根据Metzner本人的说法,“我没有为这种算法做任何事,我的名字不应该出现在算法的名字中。” 其设计者还真是风趣十足!实际上,希尔的话确...

qq_45801780的博客 529

基于OpenMV(STM32H750开发板)的机械臂视觉定位抓取实现(完整源码+说明)

该资源内项目代码均经过测试运行,功能正常,可放心下载使用。适用于计算机相关专业学生及企业员工,具有较高的学习和参考价值。既适合初学者实战练习,也可用于大作业、课程设计、毕业设计及项目立项演示。资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!

经典算法希尔排序法(Java实现)

插入类排序法之希尔排序法详解,Java代码实现

人生处处是围城,一切都是最好的安排! 1452

C语言—希尔排序法

希尔排序法对一组数据由小到大进行排序,数据分别为 69、56、12、136、3、55、46、 99、88、25。

2301_77019544的博客 436

C++实现希尔排序法

希尔排序法是对直接插入排序法的优化,通过设置一个增量,对原始序列进行分组,对每组用直接插入排序法排序再整合,再缩小增量,周而复始直至增量为1,完成排序,因此又叫“缩小增量排序法”。本节Jungle图文并茂介绍一下希尔排序法,并给出C++代码。 1.举例说明希尔排序法过程 以一个整数序列为例来说明{12,45,90,1,34,87,-3,822,23,-222,32},该组序列包含N=11个数。...

冯Jungle的个人博客 3031

希尔排序法对一维数组排序

希尔排序法对一维数组排序希尔排序(缩小增量排序),首先将整个待排序的序列分割成若干子序列,分别直接插入排序,然后再对全体记录进行插入排序.using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using S...

weixin_33881050的博客 357

希尔排序是一种稳定的排序算法_排序算法 希尔排序法

希尔排序法基于Java语言实现本文主要围绕希尔排序法的实现希尔排序法简介原理:希尔排序法就是将一组无序的数据分割成若干个小的子序列分别进行插入排序的方法。因此希尔排序首先要选定一个增量值作为分组的依据,通过增量值的间隔来得到不同的插入排序组,然后对每一组的数据进行插入排序,但增量值要不断地进行递减才能达到排序的目的。插入排序法宏泽,公众号:豆农成长排序算法 - 插入排序法说明:希...

weixin_39860952的博客 743

排序算法-希尔排序法(ShellSort)

我们知道当原始记录的键值大部分已排好序的情况下插入排序法非常有效,因为它不需要执行太多的数据搬移操作。希尔排序法是D.L.Shell在1959年7月发明的一种排序法,可以减少插入排序法中数据搬移的次数,以加速排序的进行。排序的原则是将数据区分成特定间隔的几个小区块,以插入排序法排完区块内的数据后再渐渐减少区间的距离。

Hank_W 995

希尔排序法 C#

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace 希尔排序 { class Program { static int[] data = new int[8]; ...

Somewater_的博客 292

算法大神之路----排序(希尔排序法)

希尔排序法,是D.L.Shell在1959年7月发明的一种排序法. 原理上,有点像插入排序法,但它可以减少数据搬移的次数.排序的原则是将数据分成特定间隔的几个小区块,以插入排序法拍完区块内的数据,再渐渐减少间隔的距离. 算法分析: 任何情况下,时间复杂度均为O(n3/2). 希尔排序法和插入排序法一样,都是稳定排序 只需要一个额外的空间,所以空间复杂度最佳 此排序法适用于数据大部分都已...

weixin_30820151的博客 109

算法——排序之路(二)——希尔排序法(Shell Sort)

希尔排序法(Shell Sort) 希尔排序法(缩小增量法)属于插入类排序,是将整个无序列分割成若干小的子序列分别进行插入排序的方法。 该方法的基本思想是:先将整个待排元素序列分割成若干个子序列(由相隔某个“增量”的元素组成的)分别进行直接插入排序,然后依次缩减增量再进行排序,待整个序列中的元素基本有序(增量足够小)时,再对全体元素进行一次直接插入排序。因为直接插入排序在元素基本有序的

AnselLee的博客 535

算法排序----希尔排序法

现在我来讲述一下希尔排序法希尔排序法(缩小增量法) 属于插入类排序,是将整个无序列分割成若干小的子序列分别进行插入排序的方法。什么是增量呢,就是数组中一个元素和其下标加上这个增量值的元素进行对比。这个就是增量。比如说,如果增量是6,那么就是a[0]和a[6]元素进行对比。增量的初始值我们可以设计成为数组长度的一半。然后依次递减。主体思想就是这个,希尔排序法的思想非常容易理解。但是是一个不稳定算法...

SmilingCobra 642

13. 数据结构进阶十三排序实现之希尔排序法

13. 数据结构进阶十三排序实现之希尔排序法 “一个人光溜溜的到这个世界来 , 最后光溜溜的离开这个世界而去 , 彻底想起来 , 名利都是身外物 , 只有尽一人的心力 , 使社会上的人多得他工作的裨益 , 是人生最愉快的事情。--邹韬奋”            下面是希尔排序法了。     1.  希尔排序 希尔排序(ShellSort)是插入排序的一种。也称缩小增量排序,是

badman250的专栏 5389

图解希尔排序法

插入排序存在的问题 上一篇我们讲了插入排序,我们通过下面的例子来简单的看插入排序可能存在的问题。 数组 arr = {2,3,4,5,6,1} 这时需要插入的数 1(最小), 这样的过程是: {2,3,4,5,6,6} {2,3,4,5,5,6} {2,3,4,4,5,6} {2,3,3,4,5,6} {2,2,3,4,5,6} {1,2,3,4,5,6} 结论: 当需要插入的数是较小的数时,后移...

Gebo的博客 802
上一篇: 插入排序法
下一篇: 快速排序法
神鹰道法哥
博客等级 码龄3年 25粉丝 6原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值