def quicksort(data,left,right):
if left>=right:
return
i=left
j=right
temp=data[left]#要归位的元素
while i<j:
while i<j and data[j]>=temp:
j-=1
data[i]=data[j]#右边的都比temp大
while i<j and data[i]<=temp:
i+=1
data[j]=data[i]#左边的都比temp小
data[i]=temp#归位
quicksort(data,left,i-1)#排序i左边
quicksort(data,i+1,right)#排序i右边
def partition(data,i,j):
temp=data[i]#要归位的元素
while i<j:
while i<j and data[j]>=temp:
j-=1
data[i]=data[j]#右边的都比temp大
while i<j and data[i]<=temp:
i+=1
data[j]=data[i]#左边的都比temp小
data[i]=temp
return i
def quicksort(data,left,right):
if left>=right:
return
i=partition(data,left,right)#归位一个
quicksort(data,left,i-1)#排序i左边
quicksort(data,i+1,right)#排序i右边
过程图看这个:https://blog.csdn.net/nrsc272420199/article/details/82587933
原文:https://www.cnblogs.com/holaworld/p/12391452.html