为什么更改循环迭代顺序会增加运行时?

时间:2012-04-18 09:14:15

标签: c++ c performance

  

可能重复:
  Why does the order of the loops affect performance when iterating over a 2D array?

我有这个简单的for循环

for (i=0;i<10000;i++){
   for(j=0;j<10000;j++){
      a[i][j]=i+j;
      }}

当我将这些for循环的顺序更改为:

for (j=0;j<10000;j++){
   for(i=0;i<10000;i++){
      a[i][j]=i+j;
      }}

我看到运行时间急剧增加。为什么会这样?

感谢

1 个答案:

答案 0 :(得分:1)

访问位置的丢失会导致更多页面错误。