B2.4.4–5 · HL 递归

快速排序 · HL 应用

Python · 逐步执行

快速排序 · HL 应用

围绕基准值划分,对更小的子问题排序,再合并结果。

选择“播放”或“下一行”,跟踪 Python 的执行过程。

Python 实现

高亮表示下一条将执行的语句。数值显示执行该行之前的状态。

def quicksort(items):    if len(items) <= 1:        return items    pivot = items[0]    smaller = []    greater = []    for value in items[1:]:        if value < pivot:            smaller.append(value)        else:            greater.append(value)    left = quicksort(smaller)    right = quicksort(greater)    return left + [pivot] + right

B2.4.4 应用:理解递归如何分解问题。此分支递归实现仅作演示,不属于 B2.4.5 的构建或跟踪要求。它会创建新列表,并非原地排序。均衡划分的时间复杂度为 O(n log n);不理想的基准值可能导致 O(n²)。

继续探索

返回递归课程 →

所有 B2.4 动画 →

所有练习与资源 →