| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1401 人关注过本帖
标题:这两段代码在执行效率上有什么差异啊?
只看楼主 加入收藏
惜缘
Rank: 1
等 级:新手上路
帖 子:32
专家分:4
注 册:2010-7-2
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:15 
这两段代码在执行效率上有什么差异啊?
简述下列两段C语言程序在执行效率上的可能存在的差异,并说明理由
(1)
for(j=0;j<100;j=j+1)
   for(i=0;i<5000;i=i+1)
      x[i][j]=2*x[i][j];
 (2)
for(i=0;i<5000;i=i+1)
   for(j=0;j<100;j=j+1)
      x[i][j]=2*x[i][j];
搜索更多相关主题的帖子: 代码 效率 
2010-11-03 19:28
pangding
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:北京
等 级:贵宾
威 望:94
帖 子:6784
专家分:16751
注 册:2008-12-20
收藏
得分:0 
理论上没有区别,但实际上由于缓冲区命中概率不同执行效率可能会有一些区别。这是由硬件决定的,不是软件。在不同的机器上效果可能也不一样。
另外编译器可能也会对这种代码做优化,优化后的代码可能没有区别。
2010-11-03 21:26
shafeilong
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:4
帖 子:236
专家分:1434
注 册:2009-3-21
收藏
得分:0 
有差异  下面那个的执行速度较慢  因为要回调的次数多
2010-11-04 12:49
山之子
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2010-10-31
收藏
得分:0 
没多少差异,从软看效果一样,主要是硬件方面对两个程序有差异。。。
2010-11-04 12:52
shadow_rong
Rank: 2
等 级:论坛游民
帖 子:7
专家分:34
注 册:2010-11-1
收藏
得分:0 
没有差异,在VC 6.0环境下, 循环,全部转换成相应的 while循环...
2010-11-04 13:23
pangding
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:北京
等 级:贵宾
威 望:94
帖 子:6784
专家分:16751
注 册:2008-12-20
收藏
得分:0 
3 楼说的是什么意思?回调次数多?
我觉得这个速度差,主要是内存访问延时带来的。其它方面的速度差基本可以忽略。
2010-11-04 18:44
小K鸟
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:重庆
等 级:版主
威 望:3
帖 子:49
专家分:61
注 册:2010-8-26
收藏
得分:0 
我感觉差不多啊

学海无涯,回头是岸!
2010-11-04 20:10
小K鸟
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:重庆
等 级:版主
威 望:3
帖 子:49
专家分:61
注 册:2010-8-26
收藏
得分:1 
林锐   博士(高质量C++/C   编程指南)一书关于for语句效率的载录:

在多重循环中,如果有可能,应当将最长的循环放在最内层,最短的循环放在最外层,以减少CPU   跨切循环层的次数。

学海无涯,回头是岸!
2010-11-04 20:21
小K鸟
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:重庆
等 级:版主
威 望:3
帖 子:49
专家分:61
注 册:2010-8-26
收藏
得分:0 
第二段代码的在循环的赋初值次数和逻辑比较次数也比第一段多很多

学海无涯,回头是岸!
2010-11-04 20:26
xin310923
Rank: 5Rank: 5
等 级:职业侠客
威 望:1
帖 子:203
专家分:325
注 册:2009-12-22
收藏
得分:0 
回复 8楼 小K鸟
支持你的看法
2010-11-04 22:17
快速回复:这两段代码在执行效率上有什么差异啊?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018519 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved