$$ Loc(a_{ij}) = Loc(a_{00}) + (i\times n + j)\times L $$
$$ Loc(a_{ij}) = Loc(a_{00}) + (j\times m + i)\times L $$
$$ n = \begin{cases} & \text i(i+1)/2+j, i>=j \ & \text j(j+1)/2+i, i<j \end{cases} $$
$$ n = \begin{cases} & \text i(i+1)/2 + j, i>=j \ & \text n(n+1)2, i<j \end{cases} $$
(按行主序为例)
0 | 6 | 7 | 8 |
---|---|---|---|
1 | 1 | 2 | 12 |
2 | 1 | 3 | 9 |
3 | 3 | 1 | -3 |
4 | 3 | 6 | 14 |
5 | 4 | 3 | 24 |
6 | 5 | 2 | 18 |
7 | 6 | 1 | 15 |
8 | 6 | 4 | -7 |
一般的矩阵转置:
快速转置:
准备:
链式存储:
顺式存储:
转置操作:
主函数:
结果:
原因:三元组表元素移动
十字链表是稀疏矩阵的另一种存储策略