笔试题:简述以下两个for循环的优缺点
2014-11-06 11:18
211 查看
// 第一个 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循环的优缺点
- 174、请简述以下两个for循环的优缺点(5分)
- 请简述以下两个for 循环的优缺点
- 两个for循环的优缺点
- 两个for循环的优缺点
- 两个for循环的优缺点
- 给出两个绝对地址求相对地址(360校招笔试题)
- 腾讯笔试:把两个数和告诉A,积告诉B,求这两个数是什么
- 多线程都有哪些实现方式并简述各自的优缺点
- 数组中同时操作两个变量的方法 利用for循环加foreach遍历
- 微策略2011校园招聘笔试题(找出数组中两个只出现一次的数字)
- 简化以下程序,将两个 for 循环都替换为标准的 C++ 算法
- 两道笔试题13天:1、在下面的语句中,有关内存实例和会话内存的哪两个说法是正确的?2、会话如何与数据库通信?
- 阿里8.29,研发笔试题中的两个附加题
- 所谓的两个字符串相等比较--校园招聘笔试题
- 笔试面试成对出现的一组数,只有一个或两个只出现一次的数字,找到它们。
- 2016美团研发工程师笔试题(让人头疼的两个数字)
- 2014年去哪儿网笔试题--有两个文件context.txt和words.conf,请尝试将他们合并成为一段文字,并打印出来。
- InnoDB和MyISAM是在使用MySQL最常用的两个表类型,各有优缺点
- 使用MockDataPlugin造数据时,以下两个问题常见