- 算法零基础一本通(Python版)
- 洪锦魁
- 228字
- 2022-07-29 15:07:46
2-4 删除数组元素
在删除某一数组元素时,需要将所删除元素后面的元素往前移动,移回空的内存空间,让数组保持在连续空间。假设有一个数组的内存空间如下所示:
![](https://epubservercos.yuewen.com/6BDBC6/23721658309542706/epubprivate/OEBPS/Images/Figure-P31_46756.jpg?sign=1739341017-EGGiVX9ZWsr2Qw1zFckk1bFf9hADE5Al-0-7c0d1b56f98cedd898271a551f7fb385)
假设现在想要移除x[1]的元素2,数组处理步骤如下:
步骤1
删除x[1]的元素2,此时内存内容如下所示:
![](https://epubservercos.yuewen.com/6BDBC6/23721658309542706/epubprivate/OEBPS/Images/Figure-P32_46757.jpg?sign=1739341017-YOlCeGc7Ydpw25eZwWOMSlU2H6SC1act-0-5cff61177851735a27c65fb9f40f09a1)
步骤2
将所删除元素后面的元素往前移动,将原x[2]元素3移至前面x[1]索引位置。
![](https://epubservercos.yuewen.com/6BDBC6/23721658309542706/epubprivate/OEBPS/Images/Figure-P32_46758.jpg?sign=1739341017-XovHt02wSQMG9CuRhf2C0Y0TkAvTXe9p-0-e8f671bddb4c897a597e9e8808bf9feb)
步骤3
将原x[3]元素9移至前面x[2]索引位置。
![](https://epubservercos.yuewen.com/6BDBC6/23721658309542706/epubprivate/OEBPS/Images/Figure-P32_46759.jpg?sign=1739341017-AcC5PwHqRF6UqrZ3rO877Jn8VeWFhFqX-0-9c5a9206964438685aa419c3e85c9775)
经过以上步骤就可以删除数组的某个元素,由于删除某个元素后,要将所有后面的元素往前移动,所以时间复杂度是O(n)。