数据结构知识点归纳(特殊矩阵的压缩存储)

数组是由n(n>=1)个相同类型的数据元素构成的有限序列,每个数据元素称为一个数组元素,每个元素受n个线性关系的约束,每个元素在n个线性关系的序号称为该元素的下标,并称该数组为n维数组(from 王道)

数组与线性表的关系(from 王道)

数组是线性表的推广。一维数组也可以看作一个线性表;二维数组也可以看作是元素是线性表的线性表,以此类推。数组一旦被定义,它的维数和维界就不再改变。因此,除了结构的初始化和销毁之外,数组只会存取元素和修改元素的操作

矩阵的压缩存储

特殊矩阵:是指非零元素或零元素的分布有一定的规律的矩阵。

特殊矩阵的压缩存储主要是针对阶数很高的特殊矩阵。为了节省存储空间,对可以不存储的元素,如零元素或对称元素,不再存储。

压缩矩阵:指为多个值相同的元素值分配一个存储空间,对零元素不分配存储空间

特殊矩阵的压缩存储方法:找出特殊矩阵中值相同的矩阵元素的分布规律,把那些呈现规律性分布的值相同的多个矩阵元素压缩存储到一个存储空间中。

那么,什么是稀疏矩阵捏?

 假设m行n列的矩阵含t个非零元素,则称:

δ=\frac{t}{m*n}

为稀疏因子

通常认为δ<=0.05的矩阵为稀疏矩阵

以常规方法,即以二维数组表示高阶的稀疏矩阵时产生的问题:

1)零值元素占了 大的空间;

2)计算中进行了很多和零值的运算;

解决问题的原则:

1.尽可能少存或不存零值元素;

2.尽可能没有实际意义的运算;

3.操作方便,即:

能尽可能快地找到与下标值(i,j)的元素;能尽可能快地找到同一行或同一列的非零值元素;

如果采用常规的方法存储稀疏矩阵,那将相当浪费存储空间,因此仅存储非零元素。但通常零元素分布没有规律。所以,仅存储非零元素的值是不够的,还要存储它所在的行和列。因此,将非零元素及其相应的行和列构成一个三元组(行标,列标,值)。然后按照某种规律存储这些三元组。稀疏矩阵压缩存储后便失去了随机的特点

发布了15 篇原创文章 · 获赞 4 · 访问量 334

猜你喜欢

转载自blog.csdn.net/pipi_lovelygirl/article/details/105300188