快速排序Quicksort

快速排序法:

提示:采用递归的方式进行快速排序,需要明确递归结束的条件。
比如:len(array) < 2return 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不就只有一个元素,或没有元素,自然本身有序。


猜你喜欢

转载自blog.csdn.net/beauthy/article/details/114123747