List 为什么我可以在固定时间内找到列表的第I个元素?

List 为什么我可以在固定时间内找到列表的第I个元素?,list,big-o,List,Big O,我正在听一个算法讲座,它告诉我我可以“在固定时间内查找列表的第I个元素” 有人能给我解释一下为什么会这样吗?最坏的情况不应该是线性时间O(n),因为如果第i个元素在列表之外呢?然后它遍历列表的所有元素,并意识到它不存在,因此O(列表的大小:n) 让我知道您的想法。对于经典链表,您当然无法在固定时间内完成查找(因为您必须以某种方式遍历节点) 但您可以使用连续数组实现恒定时间访问。您需要提供更多上下文列表可能意味着许多不同的数据结构,其中一些(例如:链表)绝对没有固定的访问时间。@CollinD:噢

我正在听一个算法讲座,它告诉我我可以“在固定时间内查找列表的第I个元素”

有人能给我解释一下为什么会这样吗?最坏的情况不应该是线性时间O(n),因为如果第i个元素在列表之外呢?然后它遍历列表的所有元素,并意识到它不存在,因此O(列表的大小:n)


让我知道您的想法。

对于经典链表,您当然无法在固定时间内完成查找(因为您必须以某种方式遍历节点)


但您可以使用连续数组实现恒定时间访问。

您需要提供更多上下文<代码>列表可能意味着许多不同的数据结构,其中一些(例如:链表)绝对没有固定的访问时间。@CollinD:噢,糟糕,我是个新手。这是一个关于计算机科学的入门课,所以我们还没有得到详细的链表。我猜他说的是常规名单。我从2:50左右的这节课上了解到:我怀疑这位教授正在使用术语
List
作为
Array
的替代词(可能上下文是Python或类似的语言,共享该术语)。我只想回顾一下以前的讲座,了解更多细节(因为你链接的是第10课)@CollinD,啊,我明白了,谢谢!!如果你不介意的话,我想问一个后续问题-我注意到数组是不断查找的,因为RAM(我在这里看到的一个答案提到:“如果你知道它的地址,你可以去任何位置,而不需要遍历该位置之前的所有内存。”)你能给我一些如何做到这一点的建议吗?他们不也会做一些搜索和匹配,以在RAM上找到正确的存储桶,因此不会是固定时间吗?