特殊矩阵的压缩

本文详细介绍了对称矩阵、三角矩阵(包括下三角和上三角)以及稀疏矩阵的定义、压缩方法和存储结构。通过一维数组的形式展示如何高效地存储这些特殊矩阵,涵盖了对称矩阵的下三角存储、三角矩阵的综合存储策略以及稀疏矩阵的索引表示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

对称矩阵

  • 定义:即AT=A , ai,j=aj,i(i!=j)
  • 压缩办法:因为上三角和下三角对应元素值相同,所以只需要存储下三角部分(含对角线)的元素(一共n(n+1)/2个)
  • 存储数据结构:一维数组,设为B[n(n+1)/2]
  • 元素ai,j在B中的下标:k=1+2+……+(i-1)+j-1=i(i-1)/2+j-1(i>=j的情况) k=j(j-1)/2+i-1(i<j的情况)

三角矩阵

  • 定义:下三角矩阵(上三角区域全是同一常量的元素)即ai,j=C(i<j),上三角矩阵(上三角区域全是同一常量的元素)即ai,j=C(i>j)
  • 压缩办法:以下三角为例,从上到下、从左到右的存储元素,最后一个单位空间存储上三角区域的常量值
  • 存储数据结构:一维数组,设为B[n(n+1)/2+1]
  • 元素ai,j在B中的下标(下三角):k=i(i-1)/2+j-1(i>=j)与对称矩阵相同,k=(1+n)n/2(i<j)(上三角区域的唯一值)
  • 元素ai,j在B中的下标(上三角):k=n+(n-1)+……+(n-i+2)+(j-i+1)-1=(2n-i+2)(i-1)/2+j-i(i<=j) , k=(n+1)n/2(i>j)

三对角矩阵

  • 定义:即ai,j=0(|i-j|>1),即所有非零元素都集中在中心的三条对角线上。
  • 压缩办法:只存储中间三条对角线的元素
  • 存储数据结构:一维数组,设为B[3n-2]
  • 元素ai,j在B中的下标:k=(i-2)*3+2+2+(j-i)-1=2i+j-3.(这里画下划线部分是第1行到第i-1行的元素个数,+2定位到第i行的中间元素,毕竟除了第1和第n行,每行都只有三个元素,然后j-i决定出是左边右边还是中间的元素,最后减一因为坐标从0开始。)

稀疏矩阵

  • 定义:说白了就是建立一个索引,将非零元素及其所在的行和列一起构成一个三元组(行标,列标,值),如此一来就失去了随机存储特性。
  • 存储方式:数组存储或十字链表法
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值