数组的应用
对称矩阵的压缩存储
自己动手创造,画一个5行5列的对称矩阵
1 | 2 | 3 | 4 | 5 |
---|---|---|---|---|
2 | 1 | 2 | 3 | 4 |
3 | 2 | 1 | 2 | 3 |
4 | 3 | 2 | 1 | 2 |
5 | 4 | 3 | 2 | 1 |
画图:按“行优先”压缩存储上述矩阵,画出一维数组的样子
1 | 2 | 1 | 3 | 2 | 1 | 4 | 3 | 2 | 1 | 5 | 4 | 3 | 2 | 1 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 |
简答:写出元素i,j与数组下标之间的对应关系
数组下标从0开始且表示对称矩阵的下三角矩阵:
k=i(i-1)/2+j-1(i>=j)
k=j(j-1)/2+i-1(i<j)
数组下标从0开始且表示对称矩阵的上三角矩阵:
k=(i-1)(2n-i+2)/2+j-i(i<=j)
k=(j-1)(2n-j+2)/2+i-j(j<i)
画图:按“列优先”压缩存储上述矩阵,画出一维数组的样子
1 | 2 | 3 | 4 | 5 | 1 | 2 | 3 | 4 | 1 | 2 | 3 | 1 | 2 | 1 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0< |