码迷,mamicode.com
首页 > 其他好文 > 详细

笔试题:简述以下两个for循环的优缺点

时间:2014-11-06 12:44:58      阅读:575      评论:0      收藏:0      [点我收藏+]

标签:blog   io   os   for   sp   div   on   问题   log   

// 第一个
for (i=0; i++;)
{
if (condition)
DoSomething();
else
DoOtherthing();
}
优点:程序简洁
缺点:多执行了N-1次逻辑判断,并且打断了循环“流水线”作业,使得编译器不能对循环进行优化处理,降低了效率。每一次循环里都有比较,增加了程序空间复杂度


// 第二个 if (condition) { for (i=0; i++;) DoSomething(); } else { for (i=0; i++;) DoOtherthing(); }
优点:循环的效率高,代码相比第一个复杂一点,但循环里没有比较,降低了空间复杂度。
缺点:程序不简洁

 1.效率低但程序简洁
2.效率高但程序不简洁
1的程序比2多执行了N-1次逻辑判断。并且由于前者老要进行逻辑判断,打断了循环“流水线”作业,使得编译器不能对循环进行优化处理,降低了效率。如果N非常大,最好采用2的写法,可以提高效率。如果N非常小,两者效率差别并不明显,采用1的写法比较好,因为程序更加简洁。

一个是在for循环加入判断语句 使得循环不连续 增大运行时间
另一个是在判断后执行for循环 虽然没有打断循环连续 但代码增加 
如果是同样的逻辑的话 建议不在for循环中加判断

其实这个就是循环内层和外层的大小的问题,C/C++编程规范里面的

笔试题:简述以下两个for循环的优缺点

标签:blog   io   os   for   sp   div   on   问题   log   

原文地址:http://www.cnblogs.com/x113/p/4078259.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!