from random import randint
def quickSort(left, right, lst):
# 1.首先确定左右指针和基准数
l = left
r = right
# 2.如果序列只有一个元素,则退出排序
if left >= right:return
base = lst[left] # 1.如果base为序列最左侧元素,则应为右指针先左移,然后左指针右移 2.如果base为序列最右侧元素,则应为左指针先右移,然后右指针左移
# 3.如果序列有多个元素,则进行排序
while l<r:while l<r and lst[r]>=base:
r -=1while l<r and lst[l]<=base:
l +=1if l<r:
lst[l], lst[r]= lst[r], lst[l]
# 4.基准数回归,将左右指针所指元素和基准数进行交换
lst[l], lst[left]= lst[left], lst[l]
# 5.一趟排序结束
# 5.1 对基准数左侧序列进行排序
quickSort(left,l-1,lst)
#5.2 对基准数右侧序列进行排序
quickSort(l+1,right,lst)if __name__ =="__main__":
lst =[randint(0,10)for i inrange(6)] #随机生成一个长度为6,元素为0到9的数组成的列表
print('原序列为:',lst)quickSort(0,len(lst)-1,lst)print('快排结果:',lst)