关于多层for循环迭代的效率优化问题
来源:互联网 发布:网络电影榜单 编辑:程序博客网 时间:2024/05/17 05:06
关于多层for循环迭代的效率优化问题
今天笔试的时候遇到这么一道题目 说有上面这么循环嵌套 ,问怎么优化 并说明原因。
for(int i = 0 ; i < 1000 ;i++){
for(int j = 0; i < 100; j++){
for(int k = 0;k < 10; k++ ){
fun(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; i < 100; j++){
for(int k = 0;k < 10; k++ ){
fun(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条语句
1 0
- 关于多层for循环迭代的效率优化问题
- 多层for循环的优化
- 关于for循环的执行效率问题
- 关于for循环的执行效率问题
- 关于for循环的优化问题
- 关于for循环迭代一个小问题
- for循环的效率问题
- 关于for循环的执行效率的问题
- 关于for循环的累加效率问题(java)
- 优化for循环效率
- 关于 循环 效率的问题
- 试嵌套多层For循环的性能和优化方案
- for循环效率问题
- java 增强for循环的效率问题
- [python笔记]for循环中循环变量迭代问题
- Python的for循环迭代
- 关于for循环与for-each的效率比较
- 关于二维数组循环的效率问题
- JavaScript学习 jquery14 渐变动画
- HSSFWorkBooK用法
- 使用泛型的注意事项
- linux中我最常用的20条命令
- 链表讲解和基本操作练习附代码
- 关于多层for循环迭代的效率优化问题
- epoll实例
- 【Swift培训】苹果官方Swift教程-语法结构(中文)
- 素数判断----E -Fermat’s Chirstmas Theorem
- Codeforces 456B Fedya and Maths
- Mac系统知识简介
- NDK编译错误Unknown Application ABI,Unable to detect application ABI’s
- JAVA浮点数保留位数
- 深圳市解放路网络科技有限公司