我有一个程序在使用大数组数字时运行得非常慢。
我在最终代码中使用int[3000][3000]
、String[27000]
和String[5000]
数组。此代码需要很长时间才能运行。这可能是因为数组占用太多空间吗?
这在很大程度上取决于您操作数据的算法的复杂性。 跟。这决定了当您开始在其中抛出更多数据(通过使数组越来越大)时需要多少时间。如果您只是遍历数据,那么它将是 O(n) 的数量级,这意味着它将与给出的数据量成正比;因此,如果将数组的长度加倍,则执行程序所需的时间将增加一倍。如果你,比如说,将每个元素与另一个元素进行比较,这意味着它将在 O(n^2) 的数量级上,所以如果你将数组的长度加倍,处理它们需要大约四倍的时间。
您必须发布您的程序,以便我们了解您的算法是否只是为了让您的计算机处理复杂。
另请参阅:大O表示法
许多因素:
- 处理器处理速度。
- 内存分配 3000*
- 3000*4 字节 = 36* 10.00.000 字节 = 338 MB
- 使用列表