快速排序是经典的分治算法,平均时间复杂度为 O(n log n)。其核心思想是通过基准值分区将数组分为两部分,再递归排序子数组。
📌实现步骤
- 选择基准值(通常选第一个或中间元素)
- 分区操作:将小于基准值的元素移到左侧,大于的移到右侧
- 递归排序:对左右子数组重复上述过程
🧾Python代码示例
def quick_sort(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 quick_sort(left) + middle + quick_sort(right)
# 示例用法
nums = [3,6,8,10,15,20,2,5]
print(quick_sort(nums))
📌可视化演示
📘扩展阅读
⚠️注意事项
- 分区操作的实现方式会影响性能
- 原地排序版本可减少内存占用
- 避免在已排序数组中使用快速排序(可改为随机选择基准值)