for循环优化:数组求和

今天诺西笔试的一道题,代码段如下:
int a[1000][100];
long sum = 0;
for(int i = 0; i < 100; i ++)
  for(int j = 0; j < 1000; j ++)
  sum += a[j][i];

按照林锐的《高质量c++编程》中所说,小循环在外,大循环在里,那不用再优化了?
网上也有人说,根据数组在内存中的存放格式,按先行后列会更快?
求高手解答!

posted on 2010-10-23 13:19 oliver 阅读(1839) 评论(4)  编辑 收藏 引用

评论

# re: for循环优化:数组求和 2010-10-24 10:20 Pear

看成一维数组,单循环  回复  更多评论   

# re: for循环优化:数组求和 2010-10-24 10:32 oliver

@Pear
谢谢评论,单循环对这个题确实可以,但如果20<i<30;10<j<40,就不能用单循环了吧?  回复  更多评论   

# re: for循环优化:数组求和 2010-10-24 11:58 Pear

那就用最牛X的模板元生成循环展开的代码,运行时速度绝对最快  回复  更多评论   

# re: for循环优化:数组求和 2010-10-24 14:04 oliver

@Pear
模板元?刚了解了一下,这个太难了而且是c++中的概念,这个方法恐怕不太合适,呵呵  回复  更多评论   


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


<2024年11月>
272829303112
3456789
10111213141516
17181920212223
24252627282930
1234567

导航

统计

常用链接

留言簿

随笔档案

文章分类

文章档案

个人专栏

技术网站

搜索

最新评论

阅读排行榜

评论排行榜