Python-希尔排序
def insert_sort(li, gap):
for i in range(gap, len(li)): # i 表示摸到的牌的下标
tmp = li[i]
j = i - gap # j 指的是手里的牌的下标
while j >= 0 and li[j] > tmp:
li[j + gap] = li[j]
j -= gap
li[j + gap] = tmp
def shell_sort(li):
d = len(li) // 2
while d >= 1:
insert_sort(li, d)
d //= 2
li = list(range(20))
import random
random.shuffle(li)
print(li, "原列表")
shell_sort(li)
print(li, "排序后")
浙公网安备 33010602011771号