矩阵压缩存储(对称矩阵与压缩矩阵)

1. 对称矩阵

采用一维数组进行存储,例如test[3][3]={ { 1 , 2 , 3 } , { 2 , 1 , 3 } , { 3 , 3 , 1 } }存进 ans [ ] 里面;

for(int i=0;i<3;i++)

for(int j=0;j<3;j++)

ans[ len++ ]=test[ i ] [ j ];

解压缩则反转:

例如 test [ i ] [ j ]=len [ i * ( i + 1 ) / 2 + j ] ; //其中i*(i+1)/ 2 是所在行;


2. 稀疏矩阵

即矩阵元素多为0的情况下,介绍三元组方法;

即记录矩阵非0元素所在行列,以及值;

例如 val ( 1  ,2 , 10 ) ,表示矩阵第1行,第二列的值为10;

由于是稀疏矩阵,所以存储效率很高;

你可能感兴趣的:(数据结构,Java)