为什么矩阵要进行压缩存储? 为了节省空间。
我们对相同的元素或者零不再分配空间,把二维的矩阵压缩存进一维数组中
能进行压缩存储的矩阵称为特殊矩阵
特殊矩阵主要包括 n阶对称矩阵 上三角矩阵(下三角矩阵) 稀疏矩阵
n阶对称矩阵的条件如下: a[i][j]=a[j][i] 1<=i,j<=n
因为是把二维数组存入一维数组,所以二维数组的下标肯定跟一维数组存在某种关系(稀疏矩阵除外)
设一维数组下标为K,以n阶对称矩阵为例
当i>=j
k=i(i-1)/2+j-1
当i<j
k=j(j-1)/2+j-1
若是三角矩阵,则可能是上述两种情况的一种
稀疏矩阵可以用三元组来存储,因为无法找到矩阵中的元素下标规律,认为三元组存储最好,如果哪位知道用矩阵压缩存储,也可以评论告诉我
三元组存储区格式为(i,j,num) 他们的含义分别为 矩阵中的行,列,值
设矩阵名为M,三元组名为N,则
N(i,j,num)=(i,j,M(i,j))
我在做n阶矩阵和三角矩阵的存储时,把判断条件放入了两层 for循环中间,所以判断出结果的那话一直重复打印,但是如果条件语句放入for循环中间,就无法得到下标的遍历谁有好的解决方法吗 可以留言给我 或把源代码附上