关于FOR循环的一道面试题
2008-07-09 23:02
309 查看
题是这样的:
下面这段代码可以怎么进行优化,理由是什么?
优化方法是
下面这段代码可以怎么进行优化,理由是什么?
for(inti=0;i<=1000;i++) for(intj=0;j<=100;j++) for(intk=0;k<10;k++) func();
优化方法是
for(inti=0;i<=10;i++) for(intj=0;j<=100;j++) for(intk=0;k<1000;k++) func();
解释:
原来的代码运算次数上:
i<=1000;i++;运算1000*2
j<=100;j++;运算1000*100*2
k<10;k++;运算1000*100*10*2
func();运算1000*100*10
总数为:1000*2+1000*100*2+1000*100*10*2+1000*100*10
修改后的次数为:
i<=10;i++;运算10*2
j<=100;j++;运算10*100*2
k<1000;k++;运算1000*100*10*2
func();运算1000*100*10
总数为:10*2+10*100*2+1000*100*10*2+1000*100*10
就因为循环导致的比较和自增加运算多消耗的次数为:
1000*2+1000*100*2+1000*100*10*2-10*2+10*100*2+1000*100*10*2=
1000*2+1000*100*2-10*2+10*100*2
相关文章推荐
- 给一道关于const的面试题
- 一道关于杀猪的面试题
- 关于索引的一道经典面试题(体现效率所在)(转)
- 【转摘】一道关于实例化顺序的C#面试题
- 一道关于Linux系统下fork系统调用的面试题
- 一道关于Promise应用的面试题
- 一道面试题引发的关于c语言中文件操作的总结
- 关于global和$GLOBALS[]的一道经典面试题
- 关于一道promise的面试题
- 一道关于try,finally执行顺序的面试题
- 关于一道1到N自然数排序的华为面试题
- 一道关于反射的面试题(通过反射修改父类私有属性)
- 以空间换时间--Google一道关于堆栈操作的面试题
- 华为面试题——一道关于指针方面的编程题(C/C++)
- JavaScript关于变量作用域的一道面试题
- 一道腾讯的面试题,关于a和&a
- 华为面试题——一道关于指针方面的编程题(C/C++)
- 用代码验证阿里巴巴的一道关于男女比例的面试题
- 对一道面试题的总结与扩展思考(关于一笔画问题的数学分析)(转载)
- 关于一道简单的Java 基础面试题的剖析: short s1=1;s1 = s1 +1会报错吗?