#nums = [5,3,6,4,2,1,2,8,7]
#nums=[5,3,7,6,4,1,0,2,9,10,8]
nums=[1,1,1,1]
def QSort(left,right):#子数组第一个元素和最后一个元素在原数组中的位置
if(left >= right):#边界条件
return
l,r,key = left,right,nums[left]#初始化左指针,右指针和基准值
while(l < r):#调整元素位置
while l<r and nums[r] >= key:#加l<r是因为,key与r的数相同时,r就会执行减1操作,
r -= 1
nums[l],nums[r] = nums[r],nums[l]
while nums[l] < key:
l += 1
if l>=r:break#排好了
nums[l],nums[r] = nums[r],nums[l]
QSort(left,l-1)#左侧数组排序
QSort(l+1,right)#右侧数组排序
QSort(0,len(nums)-1)
print(nums)