原理
代码实现
def quick_sort(li, d):
# i指摸到的牌, j指的是手上的牌
for i in range(d, len(li)):
temp = li[i]
j = i - d # 初始手上的牌为最后一张
while j >= 0 and temp < li[j]: # 如果手上的牌比抽到的大,继续往左比较
li[j+d] = li[j]
j -= d
li[j+d] = temp
def Xier(li, d):
d = d // 2 # 初始化d
while d != 0:
quick_sort(li, d)
d = d // 2 # 间隔减半
import random
L = list(range(16))
random.shuffle(L)
print(L)
Xier(L, len(L)-1)
print(L)