gpt4 book ai didi

JAVA : time factor regarding Array Dimension

转载 作者:行者123 更新时间:2023-11-30 07:24:05 26 4
gpt4 key购买 nike

我有C++编码经验。最近,我一直在努力学习Java。

我正在在线法官那里练习一个简单的问题。该问题需要一个 2x1000000 维度的数组。我声明了一个数组:

int ara[][]=new int[1000000][2]

但是代码无法在 3 秒的时间限制内完成,并在第一个测试用例中得到了超出时间限制的判决。

然后我就这样切换了尺寸:

int ara[][]=new int[2][1000000]

并相应地更改了代码,代码被接受。

经过一些实验,我认为这是我的第一个代码超出时间限制的唯一原因。

int ara[][]=new int[1000000][2]int ara[][]=new int[2][1000000] 有什么区别?为什么这些数组声明之间存在如此巨大的显着时间差异?

最佳答案

分配内存需要时间。分配一个包含 5 个元素的数组所花费的时间与分配 5 个包含一个元素的数组所花费的时间不同。对于每次分配,操作系统都必须在页表中查找空闲 block ,并对其进行分配等。

因此,在一个示例中,您仅声明了 2 个数组,而在另一个示例中,您声明了 1000000 个数组。这就是为什么其中一个比另一个更快的原因。

关于JAVA : time factor regarding Array Dimension,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37054516/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com