首先来看什么是对称矩阵:
设一个N*N的方阵A,A中任意元素Aij,当且仅当Aij == Aji(0 <= i <= N-1& 0 <= j <= N-1),则矩阵A是对称矩阵。以矩阵的对角线为分隔,分为上角和下三角。
压缩存储指的是:矩阵存储时只需要存储上三角/下三角的数据,所以最多存储n(n+1)/2个数据。
对称矩阵和压缩存储的对应关系:下三角存储i>=j, SymmetricMatrix[i][j] ==arry[i*(i+1)/2+j]
比如下面的例子:
可以看到上三角和下三角数据相同,那么我们存储时只需存储一个三角的数据就可以,很好的节省了空间。
代码实现部分:
//头文件
#pragma once
#inclu

本文介绍了对称矩阵的概念,即矩阵中元素满足Aij = Aji时,矩阵是对称的。对称矩阵在存储时可以只存储上三角或下三角的数据,从而节省空间。文章以下三角存储为例,说明如何开辟一维数组存储n*(n+1)/2个元素,并通过示例展示了如何通过一维数组的索引映射到二维矩阵的元素位置。此外,还提到了代码实现的关键思路,包括如何遍历一维数组以打印出整个对称矩阵的元素。
最低0.47元/天 解锁文章

1万+

被折叠的 条评论
为什么被折叠?



