AB31-在顺序表L的第k个位置插入元素x¶
代码实现¶
复杂度分析¶
时间复杂度:O(n)¶
- 最好情况:O(1) - 当k = n+1时,在表尾插入,无需移动元素
- 最坏情况:O(n) - 当k = 1时,在表头插入,需要移动所有n个元素
- 平均情况:O(n) - 平均需要移动n/2个元素
空间复杂度:O(1)¶
- 只使用了常数个额外变量(i等)
- 没有使用额外的存储空间
- 属于原地操作
关键点总结¶
- 位置检查:
k >= 1 && k <= length + 1 - 移动方向:从后往前移动元素
- 移动范围:
i = length-1到i = k-1 - 插入位置:
data[k-1] = x(注意数组下标从0开始) - 长度更新:
length++
注意事项¶
- 位置k是从1开始计数的,而数组下标从0开始
- 插入位置可以是length+1,表示在表尾插入
- 移动元素时要防止数组越界