标签:排序 简单例子 pre 希尔排序 单例 插入排序 二次 代码 例子
希尔排序是一种分组插入排序算法。
如[1,3,0,2]
第一次排序后变成[0,2,1,3]
按上面那个简单例子走第二次排序为
[0,2,1,3]
按间隔1进行对比第一次然后依次变成
0与2比,0比2小顺序不变
[0,2,1,3]
2与1比,1比2小1去前面
[0,1,2,3]
依次类推...全部走完就是排好了
[0,1,2,3]
这是网上找的精简后的代码,我自己撸的和屎一样很乱
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
标签:排序 简单例子 pre 希尔排序 单例 插入排序 二次 代码 例子
原文地址:https://www.cnblogs.com/pythonywy/p/11869000.html