您的位置:首页 > 理论基础 > 数据结构算法

数据结构与算法 —— 向量的扩容策略与分摊时间复杂度

2016-05-26 16:17 435 查看
以可扩充向量(动态数组)为例,可以考查对该结构的连续 n 次(查询、插入或删除等)操作,将所有操作中用于内部数组扩容的时间累计起来,然后除以 n。只要 n 足够大,这一平均时间就是用于扩容处理的分摊时间成本。

动态数组,无论是 C++ STL 中的 vector 还是 Java 中的 ArrayList 都无一例外进行数组的扩充时,都是将容量以 2 为比例按指数速度增长。以下我们讲看到此种扩充机制下,用于扩容处理的分摊时间成本不过 O(1)。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: