【发布时间】:2016-09-04 09:12:45
【问题描述】:
is said 一个 O(1) 操作的示例是访问数组中的元素。根据source的说法,O(1)可以这样定义:
[Big-O of 1] 表示算法的执行时间不依赖于 输入的大小。它的执行时间是恒定的。
但是,如果要访问数组中的一个元素,那么操作的效率不取决于数组中元素的数量吗?例如
int[] arr = new int[1000000];
addElements(arr, 1000000); //A function which adds 1 million arbitrary integers to the array.
int foo = arr[55];
我不明白最后一条语句如何被描述为在 O(1) 中运行;数组中的 1,000,000 个元素对操作的运行时间没有影响吗?找到元素 55 肯定比找到元素 1 需要更长的时间吗?如果有的话,这在我看来就像 O(n)。
我确信我的推理有缺陷,但是,我只是想澄清一下这可以说是在 O(1) 中运行吗?
【问题讨论】:
标签: arrays algorithm big-o computer-science asymptotic-complexity