【发布时间】:2013-09-25 17:46:54
【问题描述】:
在stack overflow answers 之一中,关于为什么 ArrayList.get 是 O(1) 而不是 O(n)
响应者说 ArrayList 是由一个数组和一个
RangeCheck(index);
是什么决定了恒定的时间复杂度而不是线性的!我正试图解决这个问题,任何数组都不必至少部分搜索数组中可能 n 个字段的百分比,从而以某种方式构成 O(n) 搜索(如果要寻找的元素在数组的 n-1 位置 - 这不是 O(n) 搜索吗?它仍然是我认为是 O(n) 复杂度的一级 for 循环?
【问题讨论】:
-
ArrayList.get(int)不搜索。它直接返回由提供的索引寻址的元素...与数组完全一样-因此得名。 (另外,我认为这是关于 Java 的)。不过,对于 LinkedList,这将成立! -
该链接应该转到页面吗?你在这里说的是什么语言?
-
是的,这是关于 Java 的!
-
@ppeterka66 您应该将其添加为答案。伍布尔:Java。 ArrayList.get
-
答案很简单,ArrayList 的内部表示是一个数组。所以你可以通过索引直接访问!