100种算法【Python版】第51篇——希尔排序

本文目录

  • 1 算法步骤
  • 2 算法示例
  • 3 python代码
    • 3.1 代码说明
    • 3.2 复杂度分析
  • 4 算法优化
    • 4.1 Shell 原始增量序列
    • 4.2 Hibbard 增量序列
    • 4.3 Knuth 增量序列
    • 4.4 Sedgewick 增量序列
    • 4.5 Tokuda 增量序列
    • 4.6 Pratt 增量序列
  • 5 不同的增量序列的效率对比

希尔排序(Shell Sort)是插入排序的改进版。它通过比较距离较远的元素来提前进行部分排序,从而减少了后期插入排序的移动次数。希尔排序的主要思想是逐步减少元素之间的间隔(称为增量或步长),直到步长为 1,最终转变为标准的插入排序。

1 算法步骤

(1)选择增量序列:
初始增量 gap 通常设为数组长度的一半(n//2),然后逐渐减小,直到 gap 为 1。

(2)分组排序:
对每一个 gap,将数组分成若干个子序列(每个子序列由相隔 gap 的元素组成),对每个子序列进行插入排序。

(3)减少增量:
每次减小增量 gap,重复分组排序,直到 gap 为 1。在最后一次排序时,整个数组实际上是进行了插入排序。

(4)最终排序:
当 gap 为 1 时,进行一次标准的插入排序,确保数组完全有序。

2 算法示例

假设有一个数

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/5574.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

C++:哈希表的实现

一、哈希表的基本概念 1、负载因子:假设哈希表中已经映射存储了N个值,哈希表的大小为M,那么负载因子 N / M,负载因子有些地⽅也翻译为载荷因子/装载因子等,他的英文为load/factor。负载因子越大,哈希冲突的…

2024年11月软考考前注意事项

一、重要时间节点 准考证打印时间: 大部分省市的准考证打印时间从11月4日起开始,但上海、甘肃等地区则稍晚,从11月6日起开放打印。 请务必注意所在地区的具体打印时间,并尽早打印准考证,以免因错过时间而影响考试。…

书生大模型实战营Linux+InternStudio 关卡任务

一、端口映射 使用以下命令进行端口映射 ssh -p {YOUR_PORT} rootssh.intern-ai.org.cn -CNg -L 7860:127.0.0.1:7860 -o StrictHostKeyCheckingno 命令解释: -p 37367:是指定 SSH 连接的端口为 37367。rootssh.intern-ai.org.cn:表示要以…

道品科技智能水肥一体化技术要点及实施效果

## 一、引言 水肥一体化技术是现代农业中一种重要的耕作方式,旨在通过合理配置水资源与肥料,提高作物产量和质量,达到节水、增效和环保的目的。随着全球人口的增加和耕地资源的减少,水肥一体化技术在农业生产中的应用愈加重要。 …

sqlserver使用bak文件恢复数据库

进入数据库 sqlcmd -S localhost -U SA -P password备份文件 #备份格式BACKUP DATABASE your_database_name TO DISK path_to_backup_file.bak;#举例 1> BACKUP DATABASE XJZDataTest TO DISK /root/mssql.bak; 2> go使用备份文件恢复数据库 1、查询备份文件中的数据…

CSP/信奥赛C++刷题训练:经典深搜例题(1):洛谷1605 :迷宫

CSP/信奥赛C刷题训练:经典深搜例题(1):洛谷1605 :迷宫 题目描述 给定一个 N M N \times M NM 方格的迷宫,迷宫里有 T T T 处障碍,障碍处不可通过。 在迷宫中移动有上下左右四种方式&#x…

yolov8涨点系列之Concat模块改进

文章目录 Concat模块修改步骤(1) BiFPN_Concat3模块编辑(2)在__init_.pyconv.py中声明(3)在task.py中声明yolov8引入BiFPN_Concat3模块yolov8.yamlyolov8.yaml引入C2f_up模块 在YOLOv8中, concat模块主要用于将多个特征图连接在一起。其具体…

越权访问漏洞

V2Board Admin.php 越权访问漏洞 ## 漏洞描述 V2board面板 Admin.php 存在越权访问漏洞,由于部分鉴权代码于v1.6.1版本进行了修改,鉴权方式变为从Redis中获取缓存判定是否存在可以调用… V2Board Admin.php 越权访问漏洞 漏洞描述 V2board面板 Admin.ph…

安装和运行开发微信小程序

下载HBuilder uniapp官网 uni-app官网 微信开发者工具 安装 微信小程序 微信小程序 官网 微信小程序 配置 运行 注意:运行前需要开启服务端口 如果运行看不到效果,设置下基础库选别的版本 配置

小檗碱和卤代苄基异喹啉生物碱的代谢工程合成-文献精读79

De novo biosynthesis of berberine and halogenated benzylisoquinoline alkaloids in Saccharomyces cerevisiae 在 酿酒酵母(Saccharomyces cerevisiae)中从头合成小檗碱和卤代苄基异喹啉生物碱 小檗碱的酵母代谢工程生物合成-文献精读78 苄基异喹…

鸿蒙开发案例:七巧板

【1】引言(完整代码在最后面) 本文介绍的拖动七巧板游戏是一个简单的益智游戏,用户可以通过拖动和旋转不同形状的七巧板块来完成拼图任务。整个游戏使用鸿蒙Next框架开发,利用其强大的UI构建能力和数据响应机制,实现了…

【TS】九天学会TS语法——1.TypeScript 是什么

今天学习的是TypeScript 基础,目标是了解 TypeScript 的基本概念,安装 TypeScript,编写第一个 TypeScript 程序。 TypeScript 简介安装 TypeScriptTypeScript 编译过程编写第一个 TypeScript 程序 随着前端开发的不断发展,TypeScr…

Docker学习—Docker的安装与使用

Docker安装 1.卸载旧版 首先如果系统中已经存在旧的Docker,则先卸载: yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-engine2.配置Docker的yum库 首先…

69.ov5640摄像头HDMI灰度显示

(1)理论学习 灰度像素:在 RGB 颜色模型下,图像中每个像素颜色的 R、G、B 三种基色的分量值相等的像素。由灰度像素组成的灰度图像只能表现256中颜色(或亮度),通常把灰度图像中像素的亮度称为灰…

Star Tower:开启数据存储新纪元

在科技飞速发展的当今时代,数据如同璀璨的星辰,闪耀着无尽的价值。而数据存储系统,则是承载这些星辰的浩瀚宇宙。Star Tower 以其卓越的性能和创新的理念,开启了数据存储的新纪元。 Star Tower 的分布式存储架构,是一…

基于SSM的企业管理系统(源码+lw+调试+技术指导)

项目描述 临近学期结束,还是毕业设计,你还在做java程序网络编程,期末作业,老师的作业要求觉得大了吗?不知道毕业设计该怎么办?网页功能的数量是否太多?没有合适的类型或系统?等等。这里根据疫情当下,你想解决的问…

鸿蒙应用App测试-通用测试

注意:大家记得学完通用测试记得再学鸿蒙专项测试 鸿蒙应用App测试-专项测试(DevEco Testing)-CSDN博客 注意:博主有个鸿蒙专栏,里面从上到下有关于鸿蒙next的教学文档,大家感兴趣可以学习下 如果大家觉得…

掌握Qt调试技术

文章目录 前言一、Qt调试的基本概念二、Qt调试工具三、Qt调试实践四、Q调试技巧五、总结前言 在软件开发中,调试是一个至关重要的环节。Qt作为一个广泛使用的跨平台C++图形用户界面应用程序开发框架,其调试技术也显得尤为重要。本文将深入探讨Qt调试技术,帮助读者更好地掌握…

Qt中时间戳转化为时间

QT中时间和时间戳互相转化_currentsecssinceepoch-CSDN博客 qDebug()<<QDateTime::currentMSecsSinceEpoch(); 1730838034770 时间戳(Unix timestamp)转换工具 - 在线工具 (tool.lu) [static] qint64 QDateTime::currentMSecsSinceEpoch() Returns the number of milli…

势不可挡 创新引领 | 生信科技SOLIDWORKS 2025新品发布会·苏州站精彩回顾

2024年11月01日&#xff0c;由生信科技举办的SOLIDWORKS 2025新产品发布会在江苏苏州圆满落幕。现场邀请到制造业的专家学者们一同感受SOLIDWORKS 2025最新功能&#xff0c;探索制造业数字化转型之路。 在苏州站活动开场&#xff0c;达索系统专业客户事业部华东区渠道经理马腾飞…