我讀過幾篇文章,指出List.RemoveAt()在O(n)時間。C#List從結尾刪除,真的是O(n)?
如果我做這樣的事情:
var myList = new List<int>();
/* Add many ints to the list here. */
// Remove item at end of list:
myList.RemoveAt(myList.Count - 1); // Does this line run in O(n) time?
從列表的末尾刪除應該是O(1),因爲它只是需要遞減表計數值。
我是否需要編寫自己的類來實現此行爲,還是刪除C#列表末尾的項目已經在O(1)時間執行?
我知道我可以剖析這個,看看,或者使用.NET反射器。創建這個問題的關鍵是爲我認爲是一個重要問題創建一個可搜索的結果。在我自己的搜索中,我沒有找到答案。 – Olhovsky 2011-03-22 18:47:14