2013-01-09 87 views
3

我認爲要添加一個我們需要的對象:創建一個更大尺寸的新數組+ +複製舊數組+添加一個元素。所以最終的複雜度是O(N),其中N是元素的最終數量。添加刪除NSMutableArray中的對象的複雜性是什麼?

刪除 - O(N)也。

我錯了嗎?

Thx。

+0

爲什麼你需要這個,感覺它對開發者/編碼者來說沒有任何複雜性。 :) –

+0

@AnoopVaidya,非常有幫助的答案,謝謝。 – AndrewShmig

+1

我不確定這篇2005年的博客文章的相關性如何,但是從它的meta-lesson是'NSMutableArray'沒有典型的性能特徵,你會與數組關聯。 http://ridiculousfish.com/blog/posts/array.html – MaxGabriel

回答

2

I think that to add an object we need: create new array with a bigger size + make a copy of older array + add an element.

NOOOoooo ....

要添加對象,沒有創建新的陣列和做所有這些東西。

如果你還記得可可有所有的指針。如果你看到帶有指針的C/C++,就把它當作一個鏈表。要添加一個新元素,只有它的地址被保存在列表中,並且如果需要可以調整頭部/尾部。

與MutableArrays相同的情況。

複雜性應該是O(1)。