分享好友 最新资讯首页 最新资讯分类 切换频道
数据结构——直接插入排序与希尔排序(图示+文字详解)
2024-12-29 19:04

内容包括:排序的代码实现,排序原理详解,代码详解,图示

 

效果图例

基本原理:向一个有序区间插入一个值(此值在有序区间末尾的后一个位置

生动些:可以将这种插入排序看作摸牌的过程,我们手上的牌都是已经按照一定顺序排列好的,现在我们又新拿了一张牌,准备插入,方法就是从手上排好的最后一张牌开始,依次比较

若是当前手上的牌大于待插入的新牌,那么需要将手上的此牌向后移动一步,腾出一个位置

若是当前手上的牌小于待插入的新牌,则新牌的位置则定下,即手上的此牌的后一个位置

 

1 for循环构造出所有有序区间末尾下标的可能

2 待插入元素需要临时保存在tmp变量中,因为在插入过程中伴随着有序区间元素的后移,若是不提前保存待插入元素的值,则可能导致待插入元素被覆盖

3 若是待插入元素比有序区间的元素小,则此有序区间的元素即其后面都需要后移一位,但是比较还在继续,直至待插入元素比有序区间的元素大,才会停止比较

4 停止比较的两种可能(待插入元素确定位置的两种情况

                            1 待插入元素在有序区间内找到一个比小的元素,则它需要插在此元素的后面,即end+1的位置

                            2 待插入元素比所有有序区间内的元素都要小,此时end=-1,比无可比,则所有有序区间内的元素都后移一位,它插在数组的第一个位置上,即end+1的位置

故而在代码中我设计:若是遇到比待插入元素小的元素直接break,这样可以统一。

希尔排序是直接插入排序基础之上的代码设计

 
 

基本原理:第一步:多次预排序使得序列逼近有序(gap>1)

                  第二步:直接插入排序,使得序列最终有序(gap==1)

间隔gap分为一组,共又gap组

gap=gap/3+1 或者gap=gap/2   无论哪种都会使得gap最终=1,就是所有元素构成一组,此时对一组的排序就是前面所介绍的直接插入排序,会让数组最终有序

 

下面省略每组的每个待排序元素插入自己所在组有序区间的结果,读者可自行操作,这里介绍方法 

 

 end处在红组:对红组的一个待排序元素进行插入排序,初始有序区间内只有一个9

end++,end处在绿组,对绿组的一个待排序元素进行插入排序,初始有序区间内只有一个8

end++,end处在蓝组, 对蓝组的一个待排序元素进行插入排序,初始有序区间内只有一个7

end++,end处在橙组, 对橙组的一个待排序元素进行插入排序,初始有序区间内只有一个6

之后的end继续++,先是将红组中的下一个待插入元素进行插入排序,再是对绿组的下一个待插入元素进行插入排序,然后是对蓝组的下一个待插入元素进行插入排序,再是对橙组的下一个待插入元素进行插入排序,绿,蓝,橙……如此循环多组并排

最新文章
3D线激光成像数学模型简析
halcon有非常简单实用的线激光3D点云成像的相关例程,我们可以通过例程自己搭建平台进行3D相机的开发和测试,但是我们在做这个之
fitness是什么品牌
fitness是一个健身器械品牌,它在中文里也叫做力健,全称是life fitness,集合生产、设计与销售与一体的健身设备的牌子,也是美
C盘满了怎么清理?全面优化C盘空间的6个实用技巧
随着电脑的频繁使用,C盘空间逐渐变满的问题成了困扰很多用户的常见难题。当系统提示“C盘空间不足”时,电脑的运行速度往往会大
AI行业股票投资潜力与风险评估:全面分析报告及未来趋势预测
随着人工智能技术的不断发展和应用行业成为了全球更具潜力的投资领域之一。本文旨在对行业股票的投资潜力实深入分析并对未来趋势
deep love是什么意思 deep love在线中文翻译
love, fancy, enjoy, prefer, like, adore 的区别和用法这组词都有“喜欢、喜爱”的意思,其区别是:: 不但表示强烈的喜欢,而且
DNF110版本武器怎么选 全职业武器选择攻略
  在dnf中的110级版本中,更新了很多新的装备,所以我们原本100级的装备全部都要进行替换,但是由于版本刚更新,大家都不是很
60年后的你长什么样?人脸老化三大技术探秘
而我们这次的“当你老了”项目的着眼点略有不同,强调的是公益和技术的结合,因此我们需要将用户上传的面部照片变成
Chrome+迅雷:自动下载网页中的全部链接
  本文介绍在Chrome浏览器中,通过迅雷自动批量选中网页中全部下载链接并进行下载的方法。  前期的一篇博客批量下载Landsat
ai智剪,2024年抖音矩阵与AI批量剪辑工具ALLCUT的营销双利剑
a抖音矩阵的定义与作用抖音矩阵平台,是指通过多个抖音账号构成的矩阵网络,企业或个人可以利用这些账号进行更大范围的推广,增
30个数据可视化的简单图表工具
1. iCharts iCharts是能够连接市场研究出版者、经济及产业面的资料和专业的消费者的平台,拥有数以万计的图表,涵盖