python希尔排序的使用原理

python希尔排序的使用原理

1、概念

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

2、原理分析

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

最终整个表格只有一列。把数组转换成表格是为了更好地理解这个算法,算法本身还是用数组来排序。

3、实例

def shll_sort(alist):
n = len(alist)
gap = n//2 #定义初始步长,要取整数,否则下面for循环会报错'float' object cannot be interpreted as an integer
while gap>0:#按步长进行插入排序
for i in range(gap,n):
j = i
while j>=gap and alist[j-gap]>alist[j]:
alist[j-gap],alist[j]=alist[j],alist[j-gap]
j=j-gap
gap = gap//2#得到新的步长,注意是在while后面的缩进
Python教程

Python找出字符串开头有多少个0

2021-4-25 16:06:42

Python教程

python归并排序是什么

2021-4-26 23:21:32

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
今日签到
有新私信 私信列表
搜索