B2.4.3 · 排序

选择排序

Python · 逐步执行

选择排序

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

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

Python 实现

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

def selection_sort(items):    for start in range(len(items) - 1):        smallest = start        for j in range(start + 1, len(items)):            if items[j] < items[smallest]:                smallest = j        items[start], items[smallest] = items[smallest], items[start]    return items

找出剩余元素中的最小值,再将其交换到正确位置。start 之前的前缀已排序。即使输入已有序,比较的时间复杂度仍为 O(n²)。辅助空间为 O(1)。

继续探索

返回排序课程 →

所有 B2.4 动画 →

所有练习与资源 →