特殊矩阵的压缩存储
特殊矩阵是指有大量相同元素或零元素的矩阵,可用一维数组压缩存储,节省空间。
对称矩阵
对称矩阵满足 ,只需存储下三角(含对角线)部分,共 个元素。
下三角元素 ()在一维数组 中的下标为:
推导:第 i 行之前共有 个元素,第 i 行第 j 列之前还有 j 个元素。
下三角矩阵
与对称矩阵存储方式相同,但上三角部分统一存一个常数,共 个存储单元。
三对角矩阵(带状矩阵)
三对角矩阵只有主对角线及其上下两条对角线共 个非零元素,按行优先存储时,()的下标为:
推导:第 i 行之前共有 个元素(前 i 行每行 3 个,除第 0 行是 2 个),第 i 行第 j 列在本行内是第 个。
习题
习题 1
设有一个 10×10 的对称矩阵 A,采用压缩存储方式,以下三角形式存储到一维数组 B 中,则 A[5][3](下标从 0 开始)在 B 中的下标是( )
A. 13 B. 14 C. 15 D. 16
答案与解析
答案:C
解析:对称矩阵压缩存储,元素 ()下标 。代入 i=5, j=3:。
习题 2
简述对称矩阵压缩存储的推导思路。
答案与解析
对称矩阵 ,只存下三角(含对角线)即可。下三角共有 个元素。元素 ()的下标 :其中 是第 i 行之前所有行的元素总数,j 是第 i 行内第 j 列之前的元素数。
