希尔排序
希尔排序(shell sort)为一种简单高效的排序算法,为插入排序的一种,希尔排序是非稳定的排序算法,希尔排序为按下标的一定增量进行分组,对每组直接使用插入排序算法进行排序,随着增量的减少,当增量减少为1时,整个序列被分成了一组,算法就停止了。
li = [54,26,93,17,77,31,44,55,20]
def shell_sort(li):
n = len(li) # 列表的长度
incerment = n // 2 # 增量
while incerment > 0:
for i in range(incerment,n):
while i >= incerment and li[i-incerment] > li[i]:
li[i-incerment],li[i] = li[i],li[i-incerment]
i -=incerment
incerment = incerment // 2
shell_sort(li)
print(li)