【发布时间】:2011-03-22 18:45:06
【问题描述】:
我读过几篇文章说 List.RemoveAt() 在 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 反射器。创建这个问题的目的是为我认为重要的问题创建一个可搜索的结果。我在自己的搜索中没有找到答案。