关于循环执行效率问题
2013-09-23 00:11
225 查看
在软件开发的时候,经常设计到嵌套循环,如果对嵌套循环进行必要的改进,可以大大提高运行效率。
现有代码 :
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);
}
}
}
这是一个典型的嵌套循环示例,经过改进后的代码如下:、
for( int k=0;i <10;k++){
for(int j=0;j <100;j++){
for(int i=0;i <1000;i++){
function(i,j,k);
}
}
}
分析:
内大外小
for( int k=0;k <10;k++){
for(int j=0;j <100;j++){
for(int i=0;i <1000;i++){
function(i,j,k);
}
}
}
k <10;k++; 执行10次
j <100;j++ 执行10*100次
i <1000;i++ 执行10*100*1000次
function(i,j,k); 执行10*100*1000次
共执行语句数=(10+10*100+10*100*1000)*2+10*100*1000=3002020
内小外大
for( int k=0;k <1000;k++){
for(int j=0;j <100;j++){
for(int i=0;i <10;i++){
function(i,j,k);
}
}
}
k <1000;k++; 执行1000次
j <100;j++ 执行1000*100次
i <10;i++ 执行10*100*1000次
function(i,j,k); 执行10*100*1000次
共执行语句数=(1000+1000*100+10*100*1000)*2+10*100*1000=3202000
所以执行效率应该是内大外小更高一写
内小外大-内大外小=3202000条语句-3002020条语句=199980条语句
现有代码 :
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);
}
}
}
这是一个典型的嵌套循环示例,经过改进后的代码如下:、
for( int k=0;i <10;k++){
for(int j=0;j <100;j++){
for(int i=0;i <1000;i++){
function(i,j,k);
}
}
}
分析:
内大外小
for( int k=0;k <10;k++){
for(int j=0;j <100;j++){
for(int i=0;i <1000;i++){
function(i,j,k);
}
}
}
k <10;k++; 执行10次
j <100;j++ 执行10*100次
i <1000;i++ 执行10*100*1000次
function(i,j,k); 执行10*100*1000次
共执行语句数=(10+10*100+10*100*1000)*2+10*100*1000=3002020
内小外大
for( int k=0;k <1000;k++){
for(int j=0;j <100;j++){
for(int i=0;i <10;i++){
function(i,j,k);
}
}
}
k <1000;k++; 执行1000次
j <100;j++ 执行1000*100次
i <10;i++ 执行10*100*1000次
function(i,j,k); 执行10*100*1000次
共执行语句数=(1000+1000*100+10*100*1000)*2+10*100*1000=3202000
所以执行效率应该是内大外小更高一写
内小外大-内大外小=3202000条语句-3002020条语句=199980条语句
相关文章推荐
- 关于for循环的执行效率问题
- 关于for循环的执行效率的问题
- 关于for 循环里 线程执行顺序问题
- 关于Handler使用遇到的问题--多执行了些循环。
- 关于x=x+1、x+=1、x++的执行效率问题
- 关于List<T>和ArrayList<T>执行效率问题
- 关于 循环 效率的问题
- 关于js中循环遍历中顺序执行多个嵌套ajax的问题
- 关于数据库优化2——关于表的连接顺序,和where子句的前后顺序,是否会影响到sql的执行效率问题
- 关于不同sql语句执行效率的问题
- 关于执行rsh后while不能循环的问题
- 关于多循环多分支程序执行效率的可能优化方法
- 关于语言的执行效率问题
- 关于执行两个for循环效率注意点
- 关于多层循环的效率问题
- 关于Java new对象构造方法执行顺序 解释恶汉单例模式死循环问题
- 关于页面执行效率的问题
- 关于LinkedList和ArrayList的执行效率的问题的区别(测试用例)
- VB 中关于多重循环的执行问题
- 关于多重循环效率问题