您的位置:首页 > 编程语言 > Python开发

python-实现希尔排序

2018-02-01 19:29 225 查看
一、希尔排序思路:

希尔排序是一种分组插入排序算法。
首先取一个整数d1=n/2,将元素分为d1个组,每组相邻量元素之间距离为d1,
在各组内进行直接插入排序;取第二个整数d2=d1/2,重复上述分组排序过程,
直到di=1,即所有元素在同一组内进行直接插入排序。

希尔排序每趟并不使某些元素有序,而是使整体数据越来越接近有序;最后一趟排序使得所有数据有序。

 图解:




---间隔---





---间隔---




代码实现:

li=[5,7,4,6,3,1,2,9,8]
def shell_sort(li):
gap = len(li) // 2
while gap > 0:
for i in range(gap, len(li)):
tmp = li[i]
j = i - gap
while j >= 0 and tmp < li[j]:
li[j + gap] = li[j]
j -= gap
li[j + gap] = tmp
gap //= 2
shell_sort(li)
print(li)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: