标签: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++编程规范里面的
标签:blog io os for sp div on 问题 log
原文地址:http://www.cnblogs.com/x113/p/4078259.html