【发布时间】:2010-12-28 07:59:01
【问题描述】:
我已尝试确认链接列表插入的运行时间,似乎有两个不同的答案。
对于在链接列表的末尾插入一个元素,我认为它需要 O(n),因为它必须遍历到列表的末尾才能访问尾部。但是我看到的一些答案说 O(1)?他们是否假设所有链表都实现了指向尾部的指针?如果是这样,这是一个可以接受的假设吗?
其次,有些地方还建议在链表中间插入一个元素是 O(1),由于与遍历到列表中间以插入它的相同原因,我对此感到困惑。
有人可以澄清一下吗?谢谢。
【问题讨论】:
-
如果在列表中间插入 O(1),我们就不再需要数组了 :)。
-
Li0liQ:链表的优点之一是可以在中间固定时间插入项目,而在数组中则需要移动以下所有项目。
-
@Li0liQ:常数时间索引呢?
标签: algorithm language-agnostic big-o