C#列表从末尾删除,真的是O(n)吗?

6 浏览
0 Comments

C#列表从末尾删除,真的是O(n)吗?

我读过几篇文章说List.RemoveAt()的时间复杂度是O(n)。

如果我这样做:

var myList = new List();
/* 在这里添加许多整数到列表中 */
// 移除列表结尾的项目:
myList.RemoveAt(myList.Count - 1); // 这行代码的时间复杂度是O(n)吗?

从列表末尾移除应该是O(1),因为它只需要减少列表的计数。

我需要自己编写一个类来实现这种行为,还是C#列表中移除末尾的项目已经以O(1)的时间复杂度执行了呢?

0