# 快速排序时间复杂度平均为O(nlogn),最差为O(n*2),注意递归跳出条件
def quick_sort(arr,start,end):
if start >= end:#注意递归跳出条件
return
key=arr[start]
i=start
j=end
while i!=j:
while arr[j]>=key and i<j:
j-=1
while arr[i]<=key and i<j:
i+=1
arr[i],arr[j]=arr[j],arr[i]
arr[start]=arr[i]
arr[i]=key
quick_sort(arr,start,i-1)
quick_sort(arr,i+1,end)
return arr
if __name__=='__main__':
arr=[3,9,23,1,89,293,3]
p=quick_sort(arr,0,len(arr)-1)
print p

395

被折叠的 条评论
为什么被折叠?



