快排思路,分治的思想
选择基准值
每遍历一次数组,将数组元素分为 【小于基准值的】【大于基准值的】
对【】【】递归调用上述操作即可完成排序
数组元素为1直接返回
def quick_sort(arr):
if len(arr) >= 2:
key = arr[len(arr) // 2] # 选取基准值
right, left = [], [] # 定义左右两侧数组
arr.remove(key) # 从原数组中移除基准值
for i in arr:
if i < key:
left.append(i)
else:
right.append(i)
return quick_sort(left) + [key] + quick_sort(right)
else:
return arr
arr = [2, 3, 5, 7, 188, 4, 6, 15, 5, 2, 7, 9, 10, 15, 9, 17, 12]
arr = quick_sort(arr)
print(arr)