Ниже приведены две почти идентичные программы, за исключением того, что я переключил переменные i и j. Они оба бегут в разное количество времени. Может кто-нибудь объяснить, почему это происходит?
Версия 1
#include <stdio.h>
#include <stdlib.h>
main () {
  int i,j;
  static int x[4000][4000];
  for (i = 0; i < 4000; i++) {
    for (j = 0; j < 4000; j++) {
      x[j][i] = i + j; }
  }
}
Версия 2
#include <stdio.h>
#include <stdlib.h>
main () {
  int i,j;
  static int x[4000][4000];
  for (j = 0; j < 4000; j++) {
     for (i = 0; i < 4000; i++) {
       x[j][i] = i + j; }
   }
}
