希尔排序算法图解,实现希尔排序
概念
Hill排序是insert排序的最佳版本,也称为reducing incremental sort。将列表分成N组,比较每组中对应元素的大小,交换位置。
原理分析
1.在一个表中列出数组,将数组分别插入到排序中,并重复这个过程,但每次使用更长的列。
2.将数组转换成表的目的是为了更好地理解这个算法。算法本身仍然使用数组进行排序。
实例
defshll_sort(列表):
n=len(列表)
Gap=n//2#定义初始步长,它应该是一个整数,否则下面的for循环将报告一个错误 float objectcannotbeinerteretedasainer。
Whilegap0:# insert按步长排序
foriinrange(gap,n):
j=i
whilej=gapandalist列表
列表[j-gap],列表[j]=列表[j],列表[j-gap]
j=j-间隙
Gap=gap//2#获得新的步长。注意上面的缩进while是python Hill排序的原理。希望对你有帮助。更多python学习方向:Python基础课程
本教程运行环境:windows7系统,Python 3.9.1,DELL G3电脑。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。