网上看到文章都说无序数组删除元素慢,其实只要稍作改进就快了。
对于非末尾的元素,需要删除时不要直接删除,把末尾的元素移到它的位置上,再删除末尾的元素,只需要做一次数据移动。
对于有序数组,上面的方法会打乱元素的顺序,不能用。但也有办法做点优化,删除元素时不必要每次都真正删除它,可以给它做个删除标记,一段时间之后再把那些已标记删除的元素统一删除掉,增加新元素时,也可以利用附近已标记删除的元素位置,减少元素移动的次数。为了提高效率,可以把已标记删除的元素位置存入另一个数组,删除或插入元素时可以更快速。
文章探讨了如何提升无序数组中删除元素的效率,建议通过移动末尾元素来替换待删除非末尾元素,以减少数据移动次数。对于有序数组,提出了使用删除标记和延迟删除策略,同时利用标记删除的元素位置优化插入操作,以保持数组有序并减少元素移动。这种优化方法尤其适用于大数据量的操作。

4929

被折叠的 条评论
为什么被折叠?



