![](/img/trans.png)
[英]What exactly happens in memory when we allocate an array using an empty curly braces?
[英]What does extendable array do when we re-allocate the memory for array when it's full?
我只是遇到这个问题,如果我们有一个动态分配的数组,则需要O(1)进行插入。 但是,当数组已满时,我们需要为数组重新分配双倍空间,因此复制旧数组需要O(n)。
有什么办法可以使它成为O(1)?
我读过一些有关可扩展数组的文章,但是我并没有对此有所了解。 谁能帮忙解释一下?
非常感谢。
每次分配两倍的空间会形成几何级数。 这意味着,尽管某些插入(触发扩展的插入)非常昂贵,但它们很少出现,因此摊销后的性能仍然为O(1)。 例如,插入十亿个元素仅需要30倍(2 ^ 30 = 1,073,741,824)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.