for循环优化 我遇到的一个面试题
优化以下for循环并说明原因。
for(int i=0; i <10000;i++){
??????for(int j=0; j <100;j++){
??????????for(int k=0; k <10;k++){
????????????System.out.print(i+" "+j+" "+k);
??????????}
??????}
}
虽然做出来了,但是没说出原因,我也不知道原因,凭感觉是。在网上搜了一下,原来是这么回事儿。以下是在网找找的。
?优化以下for循环:
for(int i=0; i <10000;i++){
??????for(int j=0; j <100;j++){
??????????for(int k=0; k <10;k++){
????????????System.out.print("out");
??????????}
??????}
}
优化:
for(int i=10;i>=0;i--){
???for(int j=100;j>=0;j--){
??????for(int k=10000;k>=0;k--){
??????????System.out.print("out");
??????}
???}
}
把循环次数最多的放在循环的最内层??效率会相应提高的,因为可以减少外层的判断次数。同时数字尽量和0比较,也可以加快速度