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-简简单单的插入排序和希尔排序的主要内容,如果未能解决你的问题,请参考以下文章

希尔堆快排

插入排序和希尔排序的比较

算法学习-02(希尔排序,计数排序,桶排序,基数排序)

算法3 七大排序之:直接插入排序和希尔排序

图解直接插入排序和希尔排序

插入排序和希尔排序的比较