我有一个使用大数组时运行速度非常慢的程序。使用大数组大小时的代码非常慢
我在最终代码中使用了int[3000][3000]
,String[27000]
和String[5000]
数组。此代码需要永久运行。这可能是因为阵列需要太多空间吗?
我有一个使用大数组时运行速度非常慢的程序。使用大数组大小时的代码非常慢
我在最终代码中使用了int[3000][3000]
,String[27000]
和String[5000]
数组。此代码需要永久运行。这可能是因为阵列需要太多空间吗?
这取决于你的算法的复杂性一个很好的协议在其上操纵数据。用。这决定了在开始向其中投入更多数据时需要多少时间(通过使数组越来越大)。如果您只是迭代数据,那么它将按照O(n)的顺序,这意味着它将与数据给出量成正比;所以如果你将数组长度加倍,那么执行程序需要两倍的时间。比如说,比较每一个元素与另一个元素,就意味着它的大小是O(n^2),所以如果你将数组的长度加倍,那么处理它们需要四倍的时间。
如果你的算法只是为了让你的计算机处理复杂,你将不得不发布你的程序给我们。
另请参阅:Big O notation
很多因素:
3k * 3k * 4个字节是35 mb。你不能认真对待这个答案。 –
说到使用列表(这实际上无助于提高OP的速度),我编辑了你的答案以便实际使用它。 –
谢谢Simon ................ – Jimmy
什么部分是慢?它是初始化,还是程序花了很长时间来处理数组内容? –
初始化是永恒的。 –
在你的'int [3000] [3000]上寻找嵌套循环'两个嵌套循环会很好,但是第三个循环会导致性能下降。 – dasblinkenlight