----------------------android培训、java培训、期待与您交流! ----------------------
循环作为程序中最耗费资源的代码段,所以一个程序能不能选择最优的循环模式,直接将影响到程序执行的效率。这两天看了循环这方面的视频和书籍,查阅了一些资料,现在总结一下对for循环的认识
for(int i; i<10; i++){
doSomething();
}
这是我们刚接触程序语言都要学习,也是最简单的for循环了,别看知识点简单,要细说起来还是有很多需要注意的呢·
例一:
int v1=100000;
int v2=10000;
int v3=10;
for(int i=0; i<v1;i++)
for(int j=0; j<v2; j++)
for(int k=0; k<v3; k++)
do();
for(int i=0; i<v3;i++)
for(int j=0; j<v2; j++)
for(int k=0; k<v1; k++)
do();
这是一个简单的三层嵌套循环,咋一看,循环次一样,时间复杂度都为O(n^3),应该没什么区别吧,若你真认为没有区别那可就大错特错了。
在多重循环中,如果有可能,应当将最长的循环放在最内层,最短的循环放在最外层,以减少CPU跨切循环层的次数。
例二:
for(int i=0; i<upperLimit(); i++)
doSomething();
//与
int upper = upperLimit();
for(int i=0; i<upper; i++)
doSomething();
显然第二种执行效率要高一些
因为什么呢?
因为第一种每循环一次都会调用一次upperLimit() 第二种则避免了重复的调用,就这么简单,
关于for循环还有很多需要注意的小细节,我会一点一点更新滴
----------------------android培训、java培训、期待与您交流! ----------------------