python希尔排序的使用原理

概念

希尔排序是插入排序的最佳版本,也称为减少增量排序。把列表分成n组,比较各组对应的要素的大小,交换位置。

原理分析

1、将数组列在一个表格中,并将数组分别插入排序,重复这个过程,但每一次都要用更长的列。

2、把数组转换成表格是为了更好地理解这个算法,算法本身还是用数组来排序。

实例

defshll_sort(alist):
n=len(alist)
gap=n//2#定义初始步长,要取整数,否则下面for循环会报错'float'objectcannotbeinterpretedasaninteger
whilegap>0:#按步长进行插入排序
foriinrange(gap,n):
j=i
whilej>=gapandalist[j-gap]>alist[j]:
alist[j-gap],alist[j]=alist[j],alist[j-gap]
j=j-gap
gap=gap//2#得到新的步长,注意是在while后面的缩进

以上就是python希尔排序的使用原理,希望对大家有所帮助。更多Python学习指路:Python基础教程

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。