有关for循环嵌套问题的优化:
for(int i = 0;i < 1000;i ++){ for(int j = 0;j < 100;j ++) { for(int k = 0;k < 10;k ++) { System.out.println("(" + i + "," + j + "," + k + ")"); }}}
i,j,k分别:
定义了1,1000,100000次;
初始化了1,1000,100000次;
自增了1000,100000,1000000次。
想要优化此代码,则需要尽可能地减少运算次数。其实i,j,k定义其实只需要一次,上面的代码可以这样改:
int i,j,k;for(i = 0;i < 1000;i ++){ for(j = 0;j < 100;j ++) { for(k = 0;k < 10;k ++) { System.out.println("(" + i + "," + j + "," + k + ")"); }}}
i,j,k分别:
定义了1,1,1次;(定义次数减少了)
初始化了1,1000,100000次;
自增了1000,100000,1000000次。
其实,除了减少定义次数外,还可以减少初始化次数,代码如下:
int i,j,k;for(i = 0;i < 10;i ++){ for(j = 0;j < 100;j ++) { for(k = 0;k < 1000;k ++) { System.out.println("(" + k + "," + j + "," + i + ")");//交换i和k的位置,保证结果不发生改变。 }}}
i,j,k分别:
定义了1,1,1次;
初始化了1,10,1000次;(初始化次数减少了)
自增了1000,100000,1000000次。
这样优化之后,代码的效率就提高了很多。