簡體   English   中英

當數組已滿時,我們為數組重新分配內存時,可擴展數組會做什么?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM