搜文章
推荐 原创 视频 Java开发 iOS开发 前端开发 JavaScript开发 Android开发 PHP开发 数据库 开发工具 Python开发 Kotlin开发 Ruby开发 .NET开发 服务器运维 开放平台 架构师 大数据 云计算 人工智能 开发语言 其它开发
Lambda在线 > 有琦度 > 02-简简单单的插入排序和希尔排序

02-简简单单的插入排序和希尔排序

有琦度 2018-10-29

阅读本文大约需要4分钟


1

                                                                                                                                                                   

今天的两种排序也是比较简单的,思想了解了就可以自己简单的实现,我自己写的发现好像还限制了大家的思路

2

插入排序:


昨天我们讲过的选择排序,假设开辟一个空间,把最小值取出来排序。这个插入排序我们也可以简单的理解把开辟一个空间,然后第一个数作为空间的第一个数。之后按顺序去取数据和依次空间中已存在数据比较,大的放右边,小的放左边。直到所有的都比较完。新生成的数据就是排序后的数据。对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。


插入排序在实现上,在从后向前扫描过程中,需要反复把已排序元素逐步向后挪位,为最新元素提供插入空间。



希尔排序:


其实理解了插入排序我们就很简单的可以理解希尔排序了。说白了他就是插入排序的一种。简单说就是把一个要排序的列表以固定的步长进行分组。

假设我们有一个数组(以步长为4):

a = [ 13 ,14 ,94 ,33, 25 ,59 ,94 ,65 ,2 ,45 ,27 ,7 ]


拆开后:

13,25,2

14,59,45

94,94,27

33,65,7


排序后:

2,13,25

14,45,59

27,94,94

7,33,65


之后再将它们“合并”回去,再以步长为3进行(插入)排序。将数组列在一个表中并对列分别进行插入排序,重复这过程,不过每次用更长的列(步长更长了,列数更少了)来进行。最后整个表就只有一列了。


版权声明:本站内容全部来自于腾讯微信公众号,属第三方自助推荐收录。《02-简简单单的插入排序和希尔排序》的版权归原作者「Python的渐进之路」所有,文章言论观点不代表Lambda在线的观点, Lambda在线不承担任何法律责任。如需删除可联系QQ:516101458

文章来源: 阅读原文

相关阅读

关注Python的渐进之路微信公众号

Python的渐进之路微信公众号:python_up

Python的渐进之路

手机扫描上方二维码即可关注Python的渐进之路微信公众号

Python的渐进之路最新文章

精品公众号随机推荐