一道IT行业c语言相关面试题。代码执行快慢问题。本人搞不懂他想面什么。。
第一种情况:for(i=0;i<N;i++){A;B;C;}第二种情况:for(i=0;i<N;i++){A;}for(i=0;i<N;i++){B;}for(i=0;i...
第一种情况:
for(i=0;i<N;i++)
{
A;
B;
C;
}
第二种情况:
for(i=0;i<N;i++)
{
A;
}
for(i=0;i<N;i++)
{
B;
}
for(i=0;i<N;i++)
{
C;
}
问题:
1,第一印象,这两种那个执行时间短?
2,举例让第二种情况比第一种情况执行时间短。 展开
for(i=0;i<N;i++)
{
A;
B;
C;
}
第二种情况:
for(i=0;i<N;i++)
{
A;
}
for(i=0;i<N;i++)
{
B;
}
for(i=0;i<N;i++)
{
C;
}
问题:
1,第一印象,这两种那个执行时间短?
2,举例让第二种情况比第一种情况执行时间短。 展开
7个回答
展开全部
“小兔崽子,你这是小事吗?别说这事,就说你有这个想法也是死罪,你明白吗?两国皇族联姻,那岂是我们这些臣子能够插手的,我劝你还是赶紧离开吧!”许军忍不住再次骂了起来,如果不是看在我女儿的面子上,我早就踢飞你了!
楚飞、曹松、楚鸿、唐诗四人分别睡在了环形房子的外环,而曹颖、拉莎、雯雯、比克则是睡在了环形的内环,当然,他们彼此都是一个人一间屋子的,要不然比克的便宜就占大了,就是他愿意,恐怕几位女人都不会愿意的。
“是!我知道了!”一阵激动呀,雯雯跃下就向最后的三只绿色蛇头跑了过去。
“嗯!”肯定的点了点头,唐诗说道:“我们住店吧,去天才学院也不赶着这么一天两天的!”
不过气人归气人,眼下让许军一下子拿出这么多的财富来,他还真是办不到呢,盐察使总管的日子也不好过呀!
危机,楚飞不由感觉到了一丝来自死亡的威胁,当日既使他被费南制住也没有此时感觉这么大,这绝刀果然是非同凡响!
就这样,仍然是激动的看了回信,回信一封,由着楚飞捎回宫里去了。
“呵呵,小飞子,当然不怕,你要是想看,尽管过来一观便是!”笑了笑,香妃一点收起来的意思都没有。
随着一股让人心颤的强大气息传来,楚飞他们都是忍不住一惊,不出所料,这果然又是一位圣级强者呀!
楚飞、曹松、楚鸿、唐诗四人分别睡在了环形房子的外环,而曹颖、拉莎、雯雯、比克则是睡在了环形的内环,当然,他们彼此都是一个人一间屋子的,要不然比克的便宜就占大了,就是他愿意,恐怕几位女人都不会愿意的。
“是!我知道了!”一阵激动呀,雯雯跃下就向最后的三只绿色蛇头跑了过去。
“嗯!”肯定的点了点头,唐诗说道:“我们住店吧,去天才学院也不赶着这么一天两天的!”
不过气人归气人,眼下让许军一下子拿出这么多的财富来,他还真是办不到呢,盐察使总管的日子也不好过呀!
危机,楚飞不由感觉到了一丝来自死亡的威胁,当日既使他被费南制住也没有此时感觉这么大,这绝刀果然是非同凡响!
就这样,仍然是激动的看了回信,回信一封,由着楚飞捎回宫里去了。
“呵呵,小飞子,当然不怕,你要是想看,尽管过来一观便是!”笑了笑,香妃一点收起来的意思都没有。
随着一股让人心颤的强大气息传来,楚飞他们都是忍不住一惊,不出所料,这果然又是一位圣级强者呀!
追问
老兄的答案是不明觉厉啊。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
如果 没有判断的话,第一个效率高点
如果有判断的话,第二个效率高点。
如
for(i=0;i<N;i++)
{
a++;//A 、B、C 三个条件
b++;
c++;
}
这样第一个结构明显会快点。
如果
for(i=0;i<N;i++)
{
if(condition A) action1 ;//A 、B、C 三个条件
else if(condition B) action2;
else (condition c)action3;
}
这样的话,第二个效率会高点。
主要是系统执行代码时,计算机执行各个代码消耗的时间和逻辑切换
如果有判断的话,第二个效率高点。
如
for(i=0;i<N;i++)
{
a++;//A 、B、C 三个条件
b++;
c++;
}
这样第一个结构明显会快点。
如果
for(i=0;i<N;i++)
{
if(condition A) action1 ;//A 、B、C 三个条件
else if(condition B) action2;
else (condition c)action3;
}
这样的话,第二个效率会高点。
主要是系统执行代码时,计算机执行各个代码消耗的时间和逻辑切换
更多追问追答
追问
国内知名IT公司硕士面试题,不会就是这个东西吧。。很好奇
追答
这个在很多编码规范和代码优化中有提及的,这个确实考虑了程序的运行效率。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
普通来说第一个程序执行时间短,因为第二个需要顺序执行三次循环,多了两次循环变量的加1计算;
假设A、B、C三部分的计算结果互不相关,运行代码的CPU有并行能力或具备多核,可以设置优化编译选项,令编译器生成并行执行代码,这样执行起来反而会比程序一效率高、时间短。
更多追问追答
追问
假如说不考虑多核、并行、编译器优化等因素,单纯的从语言角度来分析的话,是不是意义不大啊?
还要举出一个例子让第二种比第一个效率高的。
-----------------------------
我简单的试了一下,A、B、C不相干的话,加上优化选项,编出的汇编代码是一样的。
追答
如果汇编语句中有RPT即循环语句的话,只要A、B、C是足够简单的语句(一句汇编即可完成),那么得到的汇编将会比第一个少去了循环变量的操作而效率高。
如果第二个用寄存器级的循环变量定义,如register int i;而第一个用普通变量定义的话有可能会快。
代码执行效率的因素很多,这个无边际地假设没法满足需要。他们公司是搞哪些应用的? 需要考虑其业务范围来定向猜测答案。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
一般来说,第一种情况快;因为只有一个for,只需要循环一次;第二种情况需要循环3次(有3个for)
循环体 A ==> break; B==>break; C==>break;且N>=3时最快
====
面试这样的题目的目的嘛,也许是脑筋急转弯?
更多追问追答
追问
我也比较奇怪,加上附加条件的话那就随意举例子了吧?想谁快谁就快。。
他也没说是什么答案。。
说明:国内知名IT公司的。不是本人面,是别人。
追答
这个题目有点变态,呵呵,
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
考你循环次数的判断呀!!!一般来说,第一种情况快;因为只有一个for,只需要循环一次;第二种情况需要循环3次(有3个for)!!!!!
追问
实际上没有本质上的快吧?忽略for那句,单看A、B、C。
假如N=10。
第一种是ABCABCABC、、共30次
第二种是AAAA...BBB...CCCC...共30次,
不是一样的么?不会有质的差距。。
还要举个例子要第二个比第一个快的。。。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询