快速排序法:
提示:采用递归的方式进行快速排序,需要明确递归结束的条件。
比如:len(array) < 2
后return array
跳出递归循环,依次返回调用结果。
def quicksort(array):
if len(array) < 2:
# 跳出递归循环的条件。
return array
else:
# 递归内容:找出比pivot小和大的团伙
pivot = array[0]
# 小于pivot的集合
less = [i for i in array[1:] if i <= pivot]
# 大于pivot的集合
greater = [i for i in array[1:] if i > pivot]
# 返回比pivot小的集合快速排序,[pivot],以及比pivot大的集合快速排序
return quicksort(less) + [pivot] + quicksort(greater)
print(quicksort([2,17, 20,10, 5, 2, 3]))
输出打印:[2, 2, 3, 5, 10, 17, 20]
注意:这里为什么len(array) < 2
就是递归循环的条件了呢?因为集合元素小于2不就只有一个元素,或没有元素,自然本身有序。