B2.4.3 · 排序
冒泡排序
Python · 逐步执行
冒泡排序
跟随实际的 Python 执行过程,观察列表的变化。
Python 实现
1def bubble_sort(items):2 for end in range(len(items) - 1, 0, -1):3 swapped = False4 for j in range(end):5 if items[j] > items[j + 1]:6 items[j], items[j + 1] = items[j + 1], items[j]7 swapped = True8 if not swapped:9 break10 return items end 之后的后缀已经排好序。提前终止标志使最佳情况的时间复杂度为 O(n);平均与最坏情况为 O(n²)。此原地实现使用 O(1) 辅助空间。