希尔排序函数,希尔排序方法
1.根据相邻元素排序。如果直接插入排序的步长为1,那么Hill排序就是先按照K的步长插入排序。
2.然后根据步骤K对步骤M进行排序,其中K大于M,最后对步骤1进行排序。
实例
defshell_sort(data_list):
思想:分而治之的策略
用于循环
长度=len(数据列表)
空间=长度//2
whilespace0:
for range(space,length) : #默认情况下,第一个位置的元素是排序区间,所以下标从1开始。
Tmp=data_list[i]#要插入的数据
指数=i
for range(I-space,-1,-space) : #从排序后的区间中查找插入位置
iftmpdata_list[j]:
data _ list[j space]=data _ list[j]#元素向后移动,为插入位置腾出空间
Index=j#最后一个j是插入位置。
else:
破裂
Data_list[index]=tmp#插入操作
打印(数据列表)
space=space//2
returndata_list
defshell_sort2(data_list):
思想:分而治之的策略
使用while循环
长度=len(数据列表)
空间=长度//2
whilespace0:
I=空间
Whileilength:#默认情况下,第一个位置的元素是排序的区间,所以下标从1开始。
Tmp=data_list[i]#要插入的数据
j=i
while j=spaceanddata _ list[j-space]tmp 3360 #从排序后的区间中查找插入位置。
data _ list[j]=data _ list[j-space]#元素向后移动,为插入位置腾出空间
j-=空间
Data_list[j]=tmp#插入操作
打印(数据列表)
i=1
space=space//2
Returndata_list以上是python希尔排序的用法。希望对你有帮助。更多python学习方向:Python基础课程
本教程运行环境:windows7系统,Python 3.9.1,DELL G3电脑。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。