数组是最基础的数据结构,通常用来表示其他逻辑数据结构。
数组是有限个相同类型的变量所组成的有序集合,每个变量被称为元素。
对应数据结构的增,删,改,查操作,数组的查找和更新非常方便,利用位置下标能在 O(1) 时间复杂度上完成。
但对于数组元素的新增,则变得不那么顺利,需要 O(n) 级别的时间复杂度才能完成。具体情况可分为末尾新增,非末尾新增,考虑到数组有可能满了,就需要进行扩容,扩容之后再继续新增。
数组元素的删除,会比新增相对的简单一些,但依然需要 O(n) 级别的时间复杂度才能完成。同样,具体情况可分为末尾删除,非末尾删除。能让删除时间节省的小技巧,末尾元素覆盖待删除元素,清空末尾元素,这样不涉及遍历,自然时间复杂度能降到 O(1) 级别
综上,数组适合做改,查操作,不太适合做增,删操作。
参考内容
「漫画算法-小灰的算法之旅」
网友评论