[考题] 国考历届考题与考题观念讨论(书里看到的选这个)请附上想法、出处
一、有一个 N ×N 的上三角矩阵,每个元素占一个Byte。
(1) 试以最少的内存储存之,请说明应用何种资料结构?(5 分)
(2) 总共用多少内存空间?(5 分)
(3) 若矩阵第一个元素(0,0)在位址S,请分别以 Row-Major 及
Column-Major Ordering 写出矩阵任意元素(i, j)所在位址的表示式。(10 分)
(1) 应该是以一维阵列就可以了。
1 2 3
0 4 5 => [1,2,3,4,5,6]
0 0 6
(2) 内存只需要 N(N+1)/2 Bytes
(3) 这题就有点可怕了...
Row- Major:
0 1 2 3
4 5 6
7 8
9
应该是 S + 正常矩阵的位置 - 空格的三角形位置
=> S + (Ni + j) - i(i + 1)/2
Column- Major:
0 1 3 6
2 4 7
5 8
9
应该是 S + 正常矩阵的位置 - 空格的梯形位置
=> S + (i + Nj) - (2N - j - 1)j/2
这是我在考试时想到的概念,可是因为计算有点复杂结果没能算出来...
反而还在考试中浪费了一堆时间...
回到家之后花一点时间想想,觉得这个想法应该没错,
可是计算也太花时间 = ="
不知道有没有大大这题有写出来的?
想知道是我概念错误还是纯粹计算太慢?
还是有比较容易的解法?