稀疏矩阵存储

来源:互联网 发布:node req.query 编辑:程序博客网 时间:2024/05/16 14:52

一:三元组
参见文章“ 稀疏矩阵的三元组顺序表存储及矩阵相乘算法小结”
二:压缩存储
1:稀疏压缩行CSR
假设有一个原始稀疏矩阵A
A=[4 1 0 0 2.5 ; 0 4 1 0 0 ; 0 1 4 0 1; 0 0 1 4 0 ; 2.5 0 0 0.5 4]
CSR可以将原始矩阵表达为三部分,即AA,JA,IC
AA=4 1 2.5 4 1 1 4 1 1 4 2.5 0.5 4
JA=1 4 6 9 11 14
IC=1 2 5 2 3 2 3 5 3 4 1 4 5

其中,AA是矩阵A中所有非零元素,长度为a,即非零元素个数;
JA是矩阵A中每行第一个非零元素在AA中的位置,最后一个元素是非零元素数加1,长度为n+1, n是矩阵A的行数;
IC是AA中每个元素对应的列号,长度为a。

只要知道了AA JA IC,就可以恢复出原来的矩阵。

所以将一个稀疏矩阵转为CSR表示,需要的空间为2*a+n+1个,同理CSC也是类似。

2:稀疏压缩列CSC