Insertion Sort

插入排序演示

插入排序通过将每个元素插入到其前面的有序部分来逐步排序数组,类似整理扑克牌的过程。

动画速度:

Quick Actions

常用操作

Visualization

排序可视化

194
174
114
117
84
147
117
93
169
200

Steps

排序步骤明细

暂无步骤,请点击"开始排序"

Algorithm Info

算法说明

算法步骤

  1. 将第一个元素视为已排序部分,其他元素为未排序部分。
  2. 从未排序部分取出一个元素,称为"当前元素"。
  3. 从已排序部分的末尾开始,逐步向前比较当前元素与已排序元素。
  4. 如果已排序元素大于当前元素,则将已排序元素向后移动一位。
  5. 找到合适的位置后,将当前元素放入。
  6. 重复步骤 2-5,直到未排序部分为空。

时间复杂度

最坏情况: O(n²) - 当数组是逆序时

最好情况: O(n) - 当数组已经是正序时

平均情况: O(n²)

空间复杂度

O(1) - 原地排序,不需要额外的额外空间

稳定性

插入排序是稳定的排序算法,相同元素的相对顺序不会改变。

提示:绿色柱子表示当前要插入的元素,点击步骤可以回看具体过程。