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

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

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

注意:描述矩阵元素时,行、列号通常从 1 开始;而描述数组时通常下标从 0 开始(具体看题目给出的条件,注意审题!)
特殊矩阵
分类:
-
稀疏矩阵
-
方阵:
- 对称矩阵
- 三角矩阵
- 三对角矩阵
某些特殊矩阵可以压缩存储空间
对称矩阵
定义:若 n 阶方阵中任意一个元素 a[i][j]=a[j][i],则该矩阵称为对称矩阵
普通存储:n*n 二维数组
压缩存储策略:只存储主对角线 [i=j]+ 下三角区 [i<j]

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

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

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





