[問題] 不連續的陣列讀取
開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
VS_2010 C++
額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
無
問題(Question):
我宣告了一個24*24*256的3維陣列供查表用,
但在查表時,並非連續的讀取陣列,例如說:
int P[24][24][256];
int C[24][24];
for(int j = 23; j>=0; --j)
{
for(int i = 23; i>=0; --i)
{
sum += P[i][j][C[i][j]];
}
}
其中C陣列的值0~255
這樣的每次重新計算位址取值,速度好像會被拖住,
所以想請教版上各位,有沒有辦法改善這個問題,讓速度提升?
在此麻煩各位了,謝謝。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.118.7.206
→
04/25 18:56, , 1F
04/25 18:56, 1F
→
04/25 23:20, , 2F
04/25 23:20, 2F
→
04/25 23:21, , 3F
04/25 23:21, 3F
→
04/25 23:34, , 4F
04/25 23:34, 4F
→
04/26 00:27, , 5F
04/26 00:27, 5F
推
04/26 01:00, , 6F
04/26 01:00, 6F
→
04/26 01:02, , 7F
04/26 01:02, 7F
→
04/26 10:26, , 8F
04/26 10:26, 8F
推
04/26 10:51, , 9F
04/26 10:51, 9F
推
04/26 12:57, , 10F
04/26 12:57, 10F
因為這裡運算量是(576次查表相加)*63,936次,
用計算時間的方式來看最花運算的地方是這邊。
※ 編輯: b9707114 來自: 140.118.7.206 (04/26 15:26)
推
04/26 15:50, , 11F
04/26 15:50, 11F
→
04/26 15:51, , 12F
04/26 15:51, 12F
其實P陣列就是已建好的資料供查表,因為C矩陣內的值會一直變化,應該沒辦法先算好。
※ 編輯: b9707114 來自: 140.118.7.206 (04/26 16:05)
EdusonX大,可以提供具體的改法嗎? 謝謝。
※ 編輯: b9707114 來自: 140.118.7.206 (04/26 16:24)
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章