快速排序算法详解
算法简介
快速排序(Quick Sort)是一种高效的排序算法,由Tony Hoare在1960年提出。它采用分治策略,平均时间复杂度为 O(n log n)。
基本思想
快速排序的核心思想是:
- 选择一个基准元素(pivot)
- 将数组分成两部分:小于基准的和大于基准的
- 递归地对这两部分进行排序
代码实现
def quicksort(arr):
if len(arr) <= 1:
return arr
pivot = arr[len(arr) // 2]
left = [x for x in arr if x < pivot]
middle = [x for x in arr if x == pivot]
right = [x for x in arr if x > pivot]
return quicksort(left) + middle + quicksort(right)
复杂度分析
最佳时间复杂度:O(n log n)
平均时间复杂度:O(n log n)
最坏时间复杂度:O(n²)
空间复杂度:O(log n)