排序思想
第一步:在数列中随意选取一个数,做为基准值;
第二步:数组中剩下的数与基准值依次比较,小于基准值的数放左边,大于基准值的数放右边;
第三步:左右两边的数重复第一第二步,直至排序完成
不明白?跳个舞吧【https://www.bilibili.com/video/BV1Px411L7Tq】
def quick_sort(sort_list): # 判断排序数列长度,是后面递归的出口 if len(sort_list) < 2: return sort_list # 选数列的第一个数为基准值 mid = sort_list[0] # 定义基准值左右两个数列 left, right = [], [] # 从原始数列中移除基准值 sort_list.remove(mid) for item in sort_list: # 小于等于基准值的数,放左边 if item <= mid: left.append(item) else: # 大于基准值放右边 right.append(item) # 使用递归,对左右两个数列进行快排 return quick_sort(left) + [mid] + quick_sort(right) a = [12, 32, 1, 2, 300, 33, 0] print(quick_sort(a))
原文:https://www.cnblogs.com/dc2019/p/13611031.html