多重循环的优化

来源:互联网 发布:java中@test的作用 编辑:程序博客网 时间:2024/04/30 07:34
代码1 for(int i=0;i<1000;i++){     for(int j=0;j<100;j++){         for(int k=0;k<10;k++){             function(i,j,k);         }     } }
代码2for(int k=0;k<10;k++){     for(int j=0;j<100;j++){         for(int i=0;i<1000;i++){             function(i,j,k);         }     } }

代码1和代码2,初一看,function都要执行10*100*1000次,效率是一样的。

但是事实上代码2的效率更高。

因为在大量的循环次数时,循环变量的比较次数也是很重要的。

代码1的循环变量的比较次数是

i=1000次

j=1000*100次

k=1000*100*10次

代码2的循环变量的比较次数是

k=10次

j=10*100次

i=10*100*1000次

所以代码2的比较次数比代码1的比较次数少了99990次!

同样的,代码2的i++,j++,k++的执行次数比代码1的要少。

原创粉丝点击