0

从数组的第一个元素而不是第 4000 个元素读取时,速度是否有差异?数组中的任何其他元素也是如此。

主要是询问 c++,但任何语言都可以。

至于数组,它将是一个整数数组。

4

4 回答 4

4

如果您专门调用数组中的元素并且您知道需要检索的元素在数组中的确切位置,那么速度上不会有差异。但是,如果涉及循环,或者某种类型的功能在数组中搜索特定值,则速度可能会受到影响。

于 2017-08-14T18:30:51.253 回答
2

应该是一样的。如果您知道要查找的元素的索引,则无需担心,如果不知道,则在遍历大型数组时要小心。

可能取决于一种语言,但我确信它在 Java 或 C/C++ 中是正确的,其余的我真的不能说。

好的,现在我看到你在谈论 C++,所以你可以确定它是一样的。

于 2017-08-14T18:30:24.980 回答
1

在给定显式地址的情况下访问内存中的内容是 O(1)

访问数组元素是通过获取数组的起始位置然后添加偏移量来完成的。

例如 arr = 0x000001f0

访问 arr[0] = 0x000001f0 + 0x00000000

访问 arr[256] = 0x000001f0 + 0x00000100

[免责声明:可能因操作系统和虚拟化以及和...而异... - 但不要担心]

于 2017-08-14T18:53:18.997 回答
1

在 C++ 中是完全一样的,这就是为什么数组是优秀的结构,以便执行很多依赖于这一事实的算法。

于 2017-08-14T18:43:36.750 回答