知行编程网知行编程网  2023-01-04 15:30 知行编程网 隐藏边栏  3 
文章评分 0 次,平均分 0.0
导语: 本文主要介绍了关于python希尔排序的使用原理的相关知识,希望可以帮到处于编程学习途中的小伙伴

python希尔排序的使用原理


概念

希尔排序是插入排序的最佳版本,也称为递减-递增排序。将链表分成n组,比较每组对应的元素大小,交换位置。


原理分析

1. 列出表中的数组,分别插入数组并排序,重复这个过程,但每次使用更长的列。

2.数组转表的目的是为了更好的理解算法。该算法本身仍然使用数组进行排序。


实例

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后面的缩进


本文教程操作环境:windows7系统、Python 3.9.1,DELL G3电脑。

本文为原创文章,版权归所有,欢迎分享本文,转载请保留出处!

知行编程网
知行编程网 关注:1    粉丝:1
这个人很懒,什么都没写
扫一扫二维码分享