• 经典算法之希尔排序



    在这里插入图片描述

    活动地址:CSDN21天学习挑战赛

    前言:
    ✌ 作者简介:游坦之 ✌
    🏆 大学软件工程在读,希望学到真本领,经世致用 🏆
    📫 如果文章知识点有错误的地方,请指正!和大家一起学习,一起进步👀
    💬 人生格言:丑且益坚,病当益壮💬
    🔥 如果感觉博主的文章还不错的话,还请👍关注、点赞、收藏三连支持👍一下博主哦

    希尔排序

    在这里插入图片描述

    什么是希尔排序?

    希尔排序是插入排序的一种又称“缩小增量排序”,是直接插入排序算法的一种更高效的改进版本。希尔排序是非稳定排序算法。该方法因 D.L.Shell 于 1959 年提出而得名。
    希尔排序是把记录按下标的一定增量分组,对每组使用直接插入排序算法排序;随着增量逐渐减少,每组包含的关键词越来越多,当增量减至 1 时,整个文件恰被分成一组,算法便终止。

    简单的说,是先设置好一个长度(一般是元素长度的一半),然后将其划分为一组,先对这一组进行排序。然后缩小范围(一般是长度/2),在分组排序,直到长度变为1。

    示例演示

    声明:以下图片来自菜鸟教程

    (1)初始增量第一趟 gap = length/2 = 4

    img

    (2)第二趟,增量缩小为 2

    img

    (3)第三趟,增量缩小为 1,得到最终排序结果

    img

    牛刀小试

    对{7,6,9,3,1,5,2,4}进行排序

    #include 
    using namespace std;
    int a[8]={7,6,9,3,1,5,2,4};
    int gap;
    int length = 8;
    int temp;
    int main()
    {
    	int j;
    	for(gap = length/2;gap>0;gap/=2)
    	{
    		for(int i=gap;i=gap&&temp
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27

    结果:

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YPopdGEB-1660705194988)(C:\Users\86158\AppData\Roaming\Typora\typora-user-images\image-20220817105808982.png)]

    原创不易,为了最基础的欲望! \textcolor{blue}{原创不易,为了最基础的欲望!} 原创不易,为了最基础的欲望!

    👍 点赞,不会损失一匹布! \textcolor{green}{点赞,不会损失一匹布!} 点赞,不会损失一匹布!

    ⭐️ 收藏,不会丢失一厘金! \textcolor{green}{收藏,不会丢失一厘金!} 收藏,不会丢失一厘金!

    ✏️ 留下痕迹,却会温暖作者的心! \textcolor{green}{留下痕迹,却会温暖作者的心!} 留下痕迹,却会温暖作者的心!

    在这里插入图片描述

  • 相关阅读:
    【SpringBoot整合MQ】-----SpringBoot整合Kafka
    [PyTorch][chapter 57][WGAN-GP 代码实现]
    【一周安全资讯1007】多项信息安全国家标准10月1日起实施;GitLab发布紧急安全补丁修复高危漏洞
    SpringBatch ItemProcessor详解
    1.9 - Cache
    MySQL高级篇03【逻辑架构】
    idea 类注释模板和方法注释模板设置
    初次使用Ubuntu18.04遇到的问题——笔记4 (Ubuntu18.04+Anaconda+Pycharm+Pytorch)
    知名设计师推荐:2023年Pantone年度年度色彩用法
    RabbitMQ坑大全
  • 原文地址:https://blog.csdn.net/m0_59792745/article/details/126381625