[問題] 有關於巢狀的for迴圈

看板C_and_CPP (C/C++)作者 (大廚)時間15年前 (2010/11/25 09:59), 編輯推噓2(2013)
留言15則, 9人參與, 最新討論串1/1
最近在學習巢狀的for迴圈 在課程中,遇到個疑問 (1) int a[128][128]; for (i=0;i<128;i++) for (j=0;j<128;j++) a[i][j]=a[i][j]*i*j; (2) for (j=0;j<128;j++) for (i=0;i<128;i++) a[i][j]=a[i][j]*i*j; 老師是說,這兩種寫法都可以,處理結果都一樣 但是這兩種寫法有啥差異性咧?哪一種的速度比較快? 想請教比較熱心的大大指點一下。 PS:新手發文,如有用詞不當請勿見怪。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 125.230.108.6

11/25 10:06, , 1F
1不會比2來得慢 到底2會不會比較快 有請神人回答
11/25 10:06, 1F

11/25 10:07, , 2F
1不會比2來得慢 到底1會不會比較快 有請神人回答 (剛打錯)
11/25 10:07, 2F

11/25 10:07, , 3F
這有甚麼好比的=.=
11/25 10:07, 3F

11/25 10:08, , 4F
小學而大遺.
11/25 10:08, 4F

11/25 10:15, , 5F
可以在抄作業時變化一下
11/25 10:15, 5F

11/25 10:16, , 6F
看你要做什麼再寫什麼,而不是寫了再想這個是要做什麼用
11/25 10:16, 6F

11/25 10:21, , 7F
row major / column major ?
11/25 10:21, 7F

11/25 10:40, , 8F
話說某公司在面試的時候有考這題....XDD
11/25 10:40, 8F

11/25 11:40, , 9F
我想到 cache hit
11/25 11:40, 9F

11/25 14:14, , 10F
128*128才多大 根本不會有差好嗎XD
11/25 14:14, 10F

11/25 14:14, , 11F
要造成cache miss弄個10000*10000還差不多
11/25 14:14, 11F

11/25 14:44, , 12F
size太小了..沒差
11/25 14:44, 12F

11/25 14:47, , 13F
如果size很大的話就得考慮陣列記憶體連不連續的問題了
11/25 14:47, 13F

11/25 14:47, , 14F
這跟cpu cache要求記憶體的次數有關~~
11/25 14:47, 14F

11/25 16:10, , 15F
感覺上編譯器優化後的結果會差不多
11/25 16:10, 15F
文章代碼(AID): #1CxSB_IC (C_and_CPP)
文章代碼(AID): #1CxSB_IC (C_and_CPP)