快速排序是经典的分治算法,平均时间复杂度为 O(n log n)。其核心思想是通过基准值分区将数组分为两部分,再递归排序子数组。

📌实现步骤

  1. 选择基准值(通常选第一个或中间元素)
  2. 分区操作:将小于基准值的元素移到左侧,大于的移到右侧
  3. 递归排序:对左右子数组重复上述过程

🧾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))

📌可视化演示

快速排序流程

📘扩展阅读

⚠️注意事项

  • 分区操作的实现方式会影响性能
  • 原地排序版本可减少内存占用
  • 避免在已排序数组中使用快速排序(可改为随机选择基准值)