导语:
本文主要介绍了关于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电脑。
本文为原创文章,版权归知行编程网所有,欢迎分享本文,转载请保留出处!
你可能也喜欢
- ♥ Python异常处理12/25
- ♥ windows环境下如何安装labelme08/26
- ♥ python中如何判断是否是字符10/29
- ♥ 100 个 Python 学习模块,从新手到高级11/17
- ♥ Python判断是否为目录09/25
- ♥ python如何实现换行符?09/11
内容反馈