来学习

匿名用户2026-02-22 15:23:04
0 评论66 阅读
# 快速排序算法笔记 ## 算法思想 **快速排序**是分治思想的典型应用,通过选取基准元素将数组分成两部分,递归排序后合并。 ### 核心步骤 1. 选择基准(通常取首个或末尾元素) 2. 划分:小于基准放左侧,大于放右侧 3. 递归对左右子数组排序 ## 时间复杂度分析 - **最好/平均**:O(n log n) - **最坏**:O(n²),如数组已有序 期望复杂度推导: \[ T(n) = 2T(n/2) + n = O(n \log n) \] ## 代码实现 ``` 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) ```