快速排序的时间复杂度O(nlog2n)~O(n2),每次选择数组第一个元素作为基准,然后与以后元素对比,小放前,大放后,在分别以基准左右为新数组,以此类推,知道排序完成。
def quick_sort(alist,start,end):
if start>=end:
return
mid=alist[start]
low=start
high=end
while low<high:
while low<high and alist[high]>=mid:
high-=1
alist[low]=alist[high]
while low <high and alist[low]<mid:
low+=1
alist[high]=alist[low]
alist[low]=mid
quick_sort(alist, start,low-1)
quick_sort(alist,low+1,end)