数据结构-二维数组-对称矩阵压缩存储

来源:互联网 发布:淘宝流量是什么意思啊 编辑:程序博客网 时间:2024/05/21 08:59

数据结构-二维数组-对称矩阵压缩存储

一、什么是对称矩阵

对称矩阵,顾名思义就是矩阵中的元素是对称的,那具体是关于什么对称呢?就是关于对角线对称,即关于左上角到右下角的对角线对称,如下图:

a21a41a61a12a22a62a14a44a64a16a26a46a66

其中a22a44a66在对角线上,其他元素都满足aij=aji特点,类似于这样的矩阵就是对称矩阵,(其中只写出来几个示例元素,没表示出来的具有相同的特点)很容易看出只要存储矩阵中的上三角元素或者下三角元素就够了,使得对称元素共享同一存储空间。

二、对称矩阵的压缩存储

这里主要讲只存储下三角区域中的元素,包括对焦线在内总共需要n(n+1)2个存储空间,如下图所示:
这里写图片描述
任给aij元素,当ij时,从第1行到第(i1)行共有元素(1+i1)(i1)2,即i(i1)2个元素。元素aij为第i行的第j个元素,我们规定每个元素所占的空间为e,所以可得如下公式:

address(aij)=address(a11)+(i(i1)2+j1)e
同理,当i<j时可以得到如下公式:
address(aij)=address(a11)+(j(j1)2+i1)e
由于以上两个公式类似,可以合并如下公式:
address(aij)=address(a11)+(I(I1)2+J1)e

其中I=max(i,j),J=min(i,j)

以上就是对称矩阵的压缩存储介绍,写得不好,多指教。