首页 > 解决方案 > 如果索引相距更远,按索引访问数组元素是否需要更长的时间?

问题描述

做类似的事情

Console.WriteLine(arr[0]);
Console.WriteLine(arr[1]);

取短于

Console.WriteLine(arr[0]);
Console.WriteLine(arr[1823]);

出于硬件级别的原因?

标签: c#.netarrays

解决方案


访问数组元素或多或少是 O(1)。那是因为,当你这样做时myIntArray[500],你真的在​​做类似的事情memory_location + 500 * sizeof(int)

现在,从技术上讲,更大的数字需要更长的时间来相乘,但这种差异非常小,所以我们可以称之为 O(1),因此您的示例中的差异可能永远不会被感受到。


推荐阅读