数据结构与算法之矩阵的压缩存储

本文详细介绍了矩阵的几种压缩存储方法,包括对称矩阵、三角矩阵、三对角矩阵和稀疏矩阵的压缩策略。对于对称矩阵,压缩存储时只需存储主对角线及下三角区域;对于三角矩阵,分别讨论了下三角和上三角的压缩方式;三对角矩阵则存储带状部分。此外,还提到了稀疏矩阵的顺序存储和链式存储方法。这些压缩存储技术旨在节省空间,提高效率。

数组的存储结构

一维数组的存储结构

image.png

  1. 各数组元素大小相同,且物理上连续存放。
  2. 数组元素 a[i] 的存放地址=LOC+i*sizeof(ElemType)
  3. 除非题目特别说明,否则数组下标默认从 0 开始

二维数组的存储结构

image.png

M 行 N 列的二维数组 b[M][N] 中,若按照行优先存储,则 b[i][j] 的存储地址=LOC+(i*N+j)*sizeof(ElemType)

普通矩阵的存储

可用二维数组存储

image.png

注意:描述矩阵元素时,行、列号通常从 1 开始;而描述数组时通常下标从 0 开始(具体看题目给出的条件,注意审题!)

特殊矩阵

分类:

  1. 稀疏矩阵

  2. 方阵:

    1. 对称矩阵
    2. 三角矩阵
    3. 三对角矩阵

某些特殊矩阵可以压缩存储空间

对称矩阵

定义:若 n 阶方阵中任意一个元素 a[i][j]=a[j][i],则该矩阵称为对称矩阵

普通存储:n*n 二维数组

压缩存储策略:只存储主对角线 [i=j]+ 下三角区 [i<j]

image.png

以 该策略 为例,按行优先原则将各元素存入一维数组中。

image.png

问题:

  1. 数组大小应该设为多少?
  2. 站在程序员的角度,对称矩阵压缩存储后怎样才能方便使用?

<

评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

five-five

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值