免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12
最近访问板块 发新帖
楼主: std_linux
打印 上一主题 下一主题

[C] 关于两个for 循环的面试问题 [复制链接]

论坛徽章:
0
11 [报告]
发表于 2008-11-04 15:07 |只看该作者
原帖由 std_linux 于 2008-11-4 13:11 发表
就这么简单吗???  就是程序简洁,和效率问题吗????

这涉及到编译器优化和内存什么的吗????


只涉及效率

论坛徽章:
0
12 [报告]
发表于 2008-11-04 18:05 |只看该作者
这个题的完整描述是lz说的这样吗?我觉得这两种情况与if判断的内容有关,与if内部的函数有关,与循环的次数有关,关键的问题是if内部的函数会不会改变循环的N值

论坛徽章:
1
CU十二周年纪念徽章
日期:2013-10-24 15:41:34
13 [报告]
发表于 2008-11-04 18:15 |只看该作者

回复 #6 雨过白鹭洲 的帖子

看来和偶一样

论坛徽章:
1
天秤座
日期:2014-04-27 07:42:20
14 [报告]
发表于 2008-11-04 18:24 |只看该作者
这完全就是两个逻辑,哪有什么可比较性

论坛徽章:
0
15 [报告]
发表于 2008-11-04 18:26 |只看该作者

回复 #1 std_linux 的帖子

这个是典型的面试题

CPU执行指令的时候会对循环展开以及对分支语句做预测执行。

你每个循例里都有分支,会抑止CPU的流水线效率。

从这个角度来讲第二种方法有利于CPU降指令流水,来提高效率。

但是我觉得实际工作中还是要考虑语义的问题,现代CPU已经足够牛X的了,这点损失不算啥,也就是说真正考虑性能折损的时候,瓶颈一般不会出现在CPU。

当然,如果你做代码中常用的库函数时,代码需要短小精悍,另当别论的。

论坛徽章:
0
16 [报告]
发表于 2008-11-04 19:05 |只看该作者
原帖由 std_linux 于 2008-11-4 12:50 发表
第一个:   

                     for( i=0; i

服了招聘的公司
林锐的高质量C++编程

论坛徽章:
0
17 [报告]
发表于 2008-11-04 19:42 |只看该作者
呵呵,我面试华为基本都是很叼赚的问题

论坛徽章:
0
18 [报告]
发表于 2008-11-04 19:44 |只看该作者
原帖由 雨过白鹭洲 于 2008-11-4 13:50 发表
我不管效率,我只管怎样最符合语义

同意观点,错误往往可能因为第二种方案导致

论坛徽章:
0
19 [报告]
发表于 2008-11-04 20:58 |只看该作者
题目不完整。
如果要问这两个代码段的优缺点,首先要假定cond在整个代码段里不改变。
如果不能保证这点,那这是两个逻辑功能完全不同的代码段,根本无法比较优缺点。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP