我有2D静态数组,大小为256 X 256。
Array[256][256]
每个Array元素都存储两个整数值。
现在,问题在于我使用此阵列的程序必须节省时间。但我注意到Array[1][40]
,Array[34][67]
和Array[80][80]
这些元素与Array[150][256]
,Array[140][192]
相比花费的时间更少。因此,与其他索引值相比,大于100的索引值需要更多时间。
是否有任何其他数据结构可以帮助我实现对值的恒定时间访问,但也需要更少的时间来访问
代码:
for( counter1=0; counter1< sizeof(chunk1); ++counter1)
{
IndexEntries &data=IndexTable[chunk1[counter1]][chunk1[counter1+1]];
DoubleTableEntries &GetValue=NewDoubleTable[NextState_chunk1][data.index];
NextState_chunk1= GetValue.Next_State;
++Bcount;
buffer[ Bcount]=NextState_chunk1;
++counter1;
// Code lines skipped
}
chunk1[counter1]
和chunk1[counter1+1]
的值范围为0-255
。其中chunk1[counter1]
和chunk1[counter1+1]
是随机无符号字符数组。