2013-10-30 31 views
0

所以我正在做一個任務,我需要首先按行排列數組元素,然後按列排序。我是否正確地爲2D數組添加行和列?

我現在有是這樣的:

// Sum by Rows 
for(int y =0; y< height; y++) 
{ 
    for(int x = 0; x< width; x++) 
    { 
     total += array2d[x][y]; 
    } 
} 

// Sum by Columns 
for(int x =0; x< width; x++) 
{ 
    for(int y = 0; y< height; y++) 
    { 
     total += array2d[x][y]; 
    } 
} 

這是正確的?我只是想事先確定,因爲這似乎太容易成爲答案。

+0

看起來不錯,如果你要計算總的總和。或者你需要計算每行和存儲/輸出的總和? –

+0

這個想法是緩存時間我有一個計時器環繞它,顯示它執行操作的秒。這些都是在每次迭代後重建陣列的方法都要大得多,因此可以看出緩存時序的差異。 – Darxval

+0

我認爲一個好的編譯器可以優化它以更好地緩存命中。所以,你使用的沒有什麼不同。 – deepmax

回答

0

一些修改 -

// Sum by Rows 
for(int y =0; y< height; y++) 
{ 
    for(int x = 0; x< width; x++) 
    { 
    total += array2d[y][x]; // y,x not x,y since you want row(y) to be fix 
          // for each column in that row 
    } 
    //total = 0;  //uncomment this if you want sum for each row (store it or print it) 
} 

更改列的索引也相應