二维数组更快的遍历方式


代码常数怎么才能小一点呢~


先安利一下 BulaBulaCHN的整洁即是正义 怀念他教我卡常的日子 泪

之后啊 我就来说一个小东西 还是转的。。。来自二维数组不同遍历方法效率比较


二维数组的遍历方式哪种更快呢?(先行后列,先列后行)


先行后列

其实可以脑洞YY一下


然后先给出一下代码 其实看了代码就不用我说了 汗。

#include "stdafx.h"
#include 
#include 
#include 
using namespace std;
int main()
{ 
 const int MAX_ROW=2000;
 const int MAX_COL=2000;
 int (*a)[MAX_COL]=new int[MAX_ROW][MAX_COL];
 clock_t start,finish;
  
 //先行后列
   start=clock();
   for(int i=0;i


先行后列 16ms

先列后行 63ms


效率差别明显

具体就像原文说的 先列后行的遍历会发生更多的页面交换 所以会慢


那么所以我们可以认为(到重点啦)

若二维数组a[x][y]按先行后列的顺序遍历

令x

所以在卡常数中可以应用! 然后就酱




你可能感兴趣的:(—————————看心情)