概念
一般把第一个数作为基准值
将数据分区,与基准值对比大小。小的一边,大的一边
2边数据递归调用
示意图
第一次划分结束后,将剩下的2组数据(23,12,7) 和 (78,45),分别进行快速排序
代码实现
def quick_sort(lst,start,end):
if start >= end:
return
low = start
high = end
base = lst[low]
while low < high:
while low < high and lst[high] >= base:
high -= 1
lst[low] = lst[high]
while low < high and lst[low] <= base:
low += 1
lst[high] = lst[low]
lst[low] = base
quick_sort(lst,start,low-1)
quick_sort(lst,low+1,end)