快速排序是一种常用的排序算法,也是最快的排序算法之一,运行时间为O(n logn),算法主要使用了递归和分治思想,简单明了
def quicksort(array):
# 递归出口条件,当数组为[]或只有一个元素时不需要排序,直接返回
if len(array) < 2:
return array
else:
# 选取一个基准值
pivot = array[0]
# 把小于基准值的项放到less数组
less = [i for i in array[1:] if i < pivot]
# 把大于基准值的项放到greater数组
greater = [i for i in array[1:] if i > pivot]
# 对less和greater都进行递归运算,最终组合在一起就是一个有序的数组
return quicksort(less) + [pivot] + quicksort(greater)
if __name__ == '__main__':
print(quicksort([9, 5, 7, 3]))
# 输出:
[3, 5, 7, 9]