B2.4.4–5 · HL 递归
快速排序 · HL 应用
Python · 逐步执行
快速排序 · HL 应用
围绕基准值划分,对更小的子问题排序,再合并结果。
Python 实现
1def quicksort(items):2 if len(items) <= 1:3 return items4 pivot = items[0]5 smaller = []6 greater = []7 for value in items[1:]:8 if value < pivot:9 smaller.append(value)10 else:11 greater.append(value)12 left = quicksort(smaller)13 right = quicksort(greater)14 return left + [pivot] + right B2.4.4 应用:理解递归如何分解问题。此分支递归实现仅作演示,不属于 B2.4.5 的构建或跟踪要求。它会创建新列表,并非原地排序。均衡划分的时间复杂度为 O(n log n);不理想的基准值可能导致 O(n²)。