B2.4.3 · 排序

插入排序 · 拓展

Python · 逐步执行

插入排序 · 拓展

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

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

Python 实现

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

def insertion_sort(items):    for i in range(1, len(items)):        key = items[i]        j = i - 1        while j >= 0 and items[j] > key:            items[j + 1] = items[j]            j = j - 1        items[j + 1] = key    return items

可选拓展,不属于 B2.4.3 指定的两种排序。暂存 key,将较大的值后移;已排序前缀随之增长。最佳情况时间复杂度为 O(n),最坏为 O(n²);辅助空间为 O(1)。

继续探索

返回排序课程 →

所有 B2.4 动画 →

所有练习与资源 →