![算法零基础一本通(Python版)](https://wfqqreader-1252317822.image.myqcloud.com/cover/51/44510051/b_44510051.jpg)
上QQ阅读APP看书,第一时间看更新
2-4 删除数组元素
在删除某一数组元素时,需要将所删除元素后面的元素往前移动,移回空的内存空间,让数组保持在连续空间。假设有一个数组的内存空间如下所示:
![](https://epubservercos.yuewen.com/6BDBC6/23721658309542706/epubprivate/OEBPS/Images/Figure-P31_46756.jpg?sign=1739349894-83QAXcqoKWLVfYn1oMODmPz5nLWvYFBS-0-a29611c6588df3a0fdf09f48b51f009d)
假设现在想要移除x[1]的元素2,数组处理步骤如下:
步骤1
删除x[1]的元素2,此时内存内容如下所示:
![](https://epubservercos.yuewen.com/6BDBC6/23721658309542706/epubprivate/OEBPS/Images/Figure-P32_46757.jpg?sign=1739349894-XY7FZ2iAT7Tz9sfe8DfxmzyMTHo0St4i-0-cb64743c17f5c902154742b507a451c6)
步骤2
将所删除元素后面的元素往前移动,将原x[2]元素3移至前面x[1]索引位置。
![](https://epubservercos.yuewen.com/6BDBC6/23721658309542706/epubprivate/OEBPS/Images/Figure-P32_46758.jpg?sign=1739349894-gdEM58ESYZ01T18nNl1KkNc0yzAFdpOe-0-f7b3304fd45df6c8dc45476a396e70d2)
步骤3
将原x[3]元素9移至前面x[2]索引位置。
![](https://epubservercos.yuewen.com/6BDBC6/23721658309542706/epubprivate/OEBPS/Images/Figure-P32_46759.jpg?sign=1739349894-GKsDzKDYCQLLPeKL8q5tT5YKNTS0sAx8-0-77f98a3c6b19ca2c43e4ae3816e0d423)
经过以上步骤就可以删除数组的某个元素,由于删除某个元素后,要将所有后面的元素往前移动,所以时间复杂度是O(n)。