5.2规律分布特殊矩阵的压缩存储

5.2规律分布特殊矩阵的压缩存储

规律分布的特殊矩阵

元素分布具有一定规律的矩阵称为规律分布的特殊矩阵,如三角矩阵(方阵的上或下三 角全为零)和带状矩阵(若干条对角线含有非零元)。这类矩阵中元素分布的规律可以用数学公 式来反映。已知二维矩阵 A 中元素下标 i 和 j,作为转换函数 f 的自变量,计算出到一维内存空间的地址值 K,即 A[ i][ j]=B[ K],实现了原二维矩阵到压缩存储后的一维数组的存储映射。

1 .三角矩阵

三角矩阵大体分为三类:下三角矩阵、上三角矩阵、对称矩阵。对于一个 n 阶矩阵 A 来 说:若当 i <j 时,有 a ij =c(典型情况 c=0 ),则称此矩阵为下三角矩阵;若当 i>j 时,有 aij =c(典型情 况 c=0 ),则称此矩阵为上三角矩阵;若矩阵中的所有元素均满足 aij =aji,则称此矩阵为对称矩阵。

以图 1 所示的 n×n 下三角矩阵( c=0 )为例,讨论三角矩阵的压缩存储实现。

下三角矩阵的压缩存储原则是只存储下三角的非零元素,不存上三角的零元素。按“行 序为主序”进行存储,得到的序列是 a11 ,a21 ,a2 2 ,a31 ,a32 ,a33 ,…, an1 ,an2 ,…, ann。

由于下三角矩阵 A 的元素个数为 n×( n +1 )/ 2 ,即:
在这里插入图片描述
下三角矩阵中元素 aij(i>j),在一维数组 B 中的存储地址为:
在这里插入图片描述
对于对称矩阵,因其元素满足 aij=aji,我们可以为每一对相等的元素分配一个存储空间, 即只存下三角(或上三角)矩阵,从而将 n2个元素压缩到 n(n+1)/2 个空间中。
实际应用中,如果将矩阵 A[][]压缩到一个一维数组 B[]中,我们更关心其下标的对应关系,即如果将 A[i][j]存储到 B[k],那么如何通过 i 和 j,计算出 k 的值,进而获取 A[i][j] 的值。

下面以下三角为例(假设对角线以上全为 0):
在这里插入图片描述

2 .带状矩阵

( 1 )带状矩阵描述:

在矩阵中的所有非零元素都集中在以主对角线为中心的带状区域中。

其中最常见的是三对角带状矩阵,如图 3 所示。
在这里插入图片描述

( 2 )三对角带状矩阵特点

在这里插入图片描述

( 3 )三对角带状矩阵压缩存储方法

三对角带状矩阵的压缩存储原则为:将带状区域上的非零元素按行序存储。

其压缩存储方法如下。

①确定存储该矩阵所需的一维向量空间的大小

假设每个非零元素所占空间的大小为 size 个单元。从图 3 中观察得知,在三对角带状矩阵中,除了第一行和最后一行只有2个非零元素外,其余各行均有3个非零元素,由此得到:所需一维向量空间的大小为: 2 +2 +3 ×( n -2 )= 3 n-2 ,
如图 4 所示。
在这里插入图片描述

②确定非零元素在一维数组空间中的地址

在这里插入图片描述在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值