快速排序的思路可以总结为三个步骤
1.从待排序数组中随机选取一个元素,作为基准值
2.移动排序数组中的元素,基准值左侧的都大于它,右侧的都小于它
3.根据基准值分类的两部分,重新进行步骤123
def partition(lst,start,end):
pivot = lst[start]
while start < end:
while start < end and lst[end] >= pivot:
end -= 1
lst[start] = lst[end]
while start < end and lst[start] <= pivot:
start += 1
lst[end] = lst[start]
lst[start] = pivot
return start
def my_quick_sort(lst,start,end):
if start >= end:
return
index = partition(lst,start,end)
my_quick_sort(lst,start,index-1)
my_quick_sort(lst,index+1,end)
if __name__ == "__main__":
lst = [4,7,4,2,1,6,4,9,44,0,52]
my_quick_sort(lst,0,len(lst)-1)
print(lst)