![算法零基础一本通(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=1739690339-4rth8gjrmCL0hn4tAkMQm9BrB9RdgkDQ-0-7df3841809a84c576e63ebe7dd56ece4)
假设现在想要移除x[1]的元素2,数组处理步骤如下:
步骤1
删除x[1]的元素2,此时内存内容如下所示:
![](https://epubservercos.yuewen.com/6BDBC6/23721658309542706/epubprivate/OEBPS/Images/Figure-P32_46757.jpg?sign=1739690339-wGcIULmeYZL48CyM5j4Prr2dvarFBpKZ-0-fc60aa32ff04542f21b7fd28c0efdb86)
步骤2
将所删除元素后面的元素往前移动,将原x[2]元素3移至前面x[1]索引位置。
![](https://epubservercos.yuewen.com/6BDBC6/23721658309542706/epubprivate/OEBPS/Images/Figure-P32_46758.jpg?sign=1739690339-LRX5WVAN2zat0hPIVfhZwHwVuTI9tyAA-0-49be39909ec6dacd49d6ae14d5f21ed3)
步骤3
将原x[3]元素9移至前面x[2]索引位置。
![](https://epubservercos.yuewen.com/6BDBC6/23721658309542706/epubprivate/OEBPS/Images/Figure-P32_46759.jpg?sign=1739690339-yKf5gYvqVdUGJA38KSONVsDXCr9Ja1Vt-0-ef8c8b40769c1f11bb52f1204911cae5)
经过以上步骤就可以删除数组的某个元素,由于删除某个元素后,要将所有后面的元素往前移动,所以时间复杂度是O(n)。