B2.4.3 · 排序

冒泡排序

Python · 逐步执行

冒泡排序

跟随实际的 Python 执行过程,观察列表的变化。

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

Python 实现

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

def bubble_sort(items):    for end in range(len(items) - 1, 0, -1):        swapped = False        for j in range(end):            if items[j] > items[j + 1]:                items[j], items[j + 1] = items[j + 1], items[j]                swapped = True        if not swapped:            break    return items

end 之后的后缀已经排好序。提前终止标志使最佳情况的时间复杂度为 O(n);平均与最坏情况为 O(n²)。此原地实现使用 O(1) 辅助空间。

继续探索

返回排序课程 →

所有 B2.4 动画 →

所有练习与资源 →