插入排序演示

插入排序通过将每个元素插入到其前面的有序部分来逐步排序数组。

158
191
68
175
157
171
82
44
110
198

排序步骤明细

(启动排序后点击下面的步骤可以显示详情)

暂无步骤,请点击上面的“开始排序”按钮

算法步骤讲解

1. 初始化:将第一个元素视为已排序部分,其他元素为未排序部分。

2. 遍历未排序部分:从未排序部分取出一个元素,称为“当前元素”。

3. 插入过程:从已排序部分的末尾开始,逐步向前比较“当前元素”与已排序部分的元素。如果已排序元素大于“当前元素”,则将已排序元素向后移动一位。

4. 放置当前元素:找到合适的位置后,将“当前元素”放入这个位置。

5. 重复:重复步骤2至4,直到未排序部分为空。

时间复杂度

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

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

平均情况:O(n²)。

空间复杂度

空间复杂度:O(1),由于是原地排序,不需要额外的存储空间。

稳定性

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