import random
# import sys
# sys.setrecursionlimit() # 修改递归最大深度
def partition(li, left, right):
tmp = li[left]
while left < right:
while left < right and li[right] >= tmp: # 从右边找比tmp小的数
right -= 1 # 从左走一步
li[left] = li[right] # 把右边的值写到左边的空位上
print(li, "right")
while left < right and li[left] <= tmp:
left += 1
li[right] = li[left] # 把左边的值写到右边空位上
print(li, "left")
li[left] = tmp # 把tmp归位
return left
def quick_sort(li, left, right):
if left < right: # 至少两个元素
mid = partition(li, left, right)
quick_sort(li, left, mid-1)
quick_sort(li, mid+1, right)
li = [random.randint(1, 20) for i in range(20)]
print(li, "原列表")
quick_sort(li, 0, len(li)-1)
print(li, "排列后")