在删除某一数组元素时,需要将所删除元素后面的元素往前移动,移回空的内存空间,让数组保持在连续空间。假设有一个数组的内存空间如下所示:
假设现在想要移除 x[1] 的元素 2 ,数组处理步骤如下:
步骤1
删除 x[1] 的元素 2 ,此时内存内容如下所示:
步骤2
将所删除元素后面的元素往前移动,将原 x[2] 元素 3 移至前面 x[1] 索引位置。
步骤3
将原 x[3] 元素 9 移至前面 x[2] 索引位置。
经过以上步骤就可以删除数组的某个元素,由于删除某个元素后,要将所有后面的元素往前移动,所以时间复杂度是 O(n) 。