特殊矩阵的压缩存储

一 概述

矩阵在计算机图形学,工程计算中占有很重要地位,在数据结构中考虑的是如何用最小的内存空间来存储同样的一组数据。

二 数组的定义

数组是由一定数量n(n≥1)相同类型的数据元素构成的有限序列,每个数据元素称为一个数组元素,每个元素在n个线性关系中的序号称为该元素的下标,下标的取值范围为数组的维界。

数组和线性表的关系:数组是线程表的推广,一维数组可以视为一个线性表;二维数组可视为其元素也是定长线性表的线性表,多维则可以以此类推。数组一旦被定义之后,其维数和维界就不会再改变。因此,除结构的初始化和销毁之外,数组只会由存取元素和修改元素的操作。

三 数组的存储结构

大多数计算机语言都提供了数组数据类型,逻辑意义上的数组可以采用计算机语言中的数组数据类型进行存储,一个数组的所有元素在内存中占用了一段连续的存储空间。

一维数组

对于一维数组A[0...n-1]为例,其存储结构关系式为:

                               特殊矩阵的压缩存储

其中:L为每个数组元素所占的存储单元。

多维数组

对于多维数组,有两种映射方法:按行优先和按列优先。以二维数组为例,按行优先存储则是通过先行后列,先存储行号较小的元素,行号相等则先存储列号较小的元素。设二维数组的行下标于列下标的范围为[0,h₁]与[0,h₂],则存储的结构关系式为

                                                      特殊矩阵的压缩存储

此处注意的是i∈[0,h₁],所以直接用i,如果i∈[1,h₁],则需要使用i-1进行计算。

                               特殊矩阵的压缩存储

四 矩阵的压缩存储

压缩存储:指为多个值相同的元素只分配一个存储空间,对零元素不分配存储空间,其目的是为例节省存储空间。

特殊矩阵:指具有许多相同矩阵元素或零个元素,并且这些相同的矩阵元素或零元素的分布有一定规律的矩阵。常用的特殊矩阵有对称矩阵,上(下)三角矩阵,对角矩阵等。

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

对称矩阵

特殊矩阵的压缩存储

特殊矩阵的压缩存储

三角矩阵

特殊矩阵的压缩存储

特殊矩阵的压缩存储

三对角矩阵

特殊矩阵的压缩存储

稀疏矩阵

特殊矩阵的压缩存储