基本概念
压缩存储指为多个值相同的元素只分配一个存储空间,而对于零元素不分配空间,其目的就是节省存储空间;
特殊存储
指具有很多相同的元素或者零元素,并且这些元素的分布具有一定的规律;常见的一些特殊矩阵有:对称矩阵,上(下)三角矩阵和对角矩阵。
特殊矩阵的压缩存储方法:找出特殊矩阵中值相等的元素的分布规律,把那些呈现规律性分布的,值相同的多个矩阵元素压缩存储到一个存储空间中:
特殊矩阵:指具有许多相同矩阵元素或零元素,并且这些相同矩阵元素或零元素的分布有一定规律性的矩阵。
数组的定义
数组是由n(n>=1)个相同类型的数据元素构成的有限序列,每个数据元素称为一个数组元素,每个元素受n个线性关系的约束,每个元素在n个线性关系中序号称为该元素的下标,并称为该数组为n维数组。
数组和线性表的关系:数组是线性表的推广。一维数组可视为一个线性表;二维数组可视为元素是线性表的线性表,以此类推。数组一旦被定义,其维数和维界就不再改变。因此,除结构的初始化和销毁外,数组只会有存取元素和修改元素的操作。
一维数组的存储结构
一个数组的所有元素在内存中占用一段连续的存储空间。
以一维数组A[0…n-1]为例,其存储结构关系式为
LOC(aI) = LOC(a0) + (i)xL (0<=I<n)
L是每个数组元素所占的存储单元二维数组的存储结构
对于多维数组,有两种映射方法:按行优先和按列优先。
按行优先存储的基本思想:先行后列,先存储行号较小的元素,行号相等先存储列号较小的元素。
1.对称矩阵
2.三角矩阵
三角矩阵分为上三角矩阵和下三角矩阵,这个是根据是上三角区还是下三角区素有元素为同一常量来区分。
2.1下三角矩阵
下三角矩阵是指上三角区所有元素均为同一常量,设有下三角矩阵 A[i][j]如下图所示:
2.2上三角矩阵
上三角矩阵是指下三角区所有元素均为同一常量,设有下三角矩阵 A[i][j]如下图所示:
3.三对角矩阵
三对角矩阵也称带状矩阵,它是指所有非零元素都集中在以主对角线为中心的3条对角线的区域,其他区域均为零的矩阵;设有三对角矩阵 A[i][j]如下图所示:
4.稀疏矩阵
如果一个矩阵中的非零元素的个数 t 相对于矩阵元素的个数 s 来说非常的少,此时我们就说该矩阵为稀疏矩阵;所以说如果采用正常的存储方法,那是非常浪费存储空间的,因此我们可以只存储非零元素,但又不像前面所讲的矩阵,这里的非零元素是没有规律的,而且仅仅存储非零元素的值是不够的,还需要存储它所在的行和列,那么根据这些我们想到可以将这些非零元素及其相应的行和列构成一个三元组(行标,列标,值)如下:
那构成三元组的稀疏矩阵就可以采用数组或者十字链表法存储了;
【注】稀疏矩阵压缩存储后就失去了随机存取的特性;
数据结构:特殊矩阵压缩存储之分辨什么是对称矩阵、三角矩阵、稀疏矩阵
最新推荐文章于 2023-11-09 21:12:19 发布