嵌套循环的代码调优以获得更好的性能

时间:2019-12-12 20:40:24

标签: java nested-loops

您认为有什么好方法可以对代码进行代码调整以提高效率?

int[][] table = new int[1000][10];
for(int i = 0; i < table.length; i++)
    for(int j = 0; j < table[i].length; j++)
        table[i][j] = i * j;

3 个答案:

答案 0 :(得分:2)

这些会有所帮助:

  • 在可能的地方使用常量
  • 不要将0分配给已经为0的元素
  • 利用遍历数组的顺序来避免显式乘法

答案 1 :(得分:1)

真正的答案是做一些数学运算,然后尝试从O(n ^ 2)推断时间复杂度。

以下解决方案消除了最昂贵的运算,即乘法。我没有进行测试来确定,但是类似的方法应该可以工作。

int[][] table = new int[1000][10];
for(int i = 0; i < table.length; i++)
    int t = i;
    for(int j = 0; j < table[i].length; j++)
        t += j;
        table[i][j] = t;

答案 2 :(得分:0)

对于这样的事情,我更喜欢这样做。

SomeClass.some_attr

但是我不能说它是否有效。