02-简简单单的插入排序和希尔排序
Posted 有琦度
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了02-简简单单的插入排序和希尔排序相关的知识,希望对你有一定的参考价值。
阅读本文大约需要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-简简单单的插入排序和希尔排序的主要内容,如果未能解决你的问题,请参考以下文章