快速排序是一种分治算法,它的基本思想是:
- 选取一个基准元素(通常选择第一个元素)
- 将其他元素与基准元素进行比较,将所有小于基准元素的元素移到基准元素的左边,将所有大于基准元素的元素移到基准元素的右边
- 对基准元素左右两边的子序列分别递归执行步骤 1 和 2,直到所有子序列都有序
具体实现方法如下:
def quick_sort(arr):
if len(arr) <=1:
return arr
pivot = arr[0] # 选取基准元素
left = [x for x in arr[1:] if x < pivot] # 将小于基准元素的元素放到左边
right = [x for x in arr[1:] if x >= pivot] # 将大于基准元素的元素放到右边
return quick_sort(left) + [pivot] + quick_sort(right) # 递归调用