首先最开始我们先回忆一下数组的概念
数组是由n个相同类型的数据元素构成的有限序列,每个数据元素称为一个数组元素,每个元素在n个线性关系中的序号称为该元素的下标,下标的取值范围称为数组的维界。
数组是线性表的推广
一维数组可以视为一个线性表二维数组可视为其元素为定长线性表的线性表数组一旦被定义,其维数和维界就不再改变,因此除了数组结构的初始化和销毁外,数组只能执行存储元素和修改元素的操作在了解完数组的定义后,最新营销模式我们再了解一下数组在内存中是如何存储的
一个数组的所有元素在内存中占用一段连续的存储空间
一维数组的存储如下:
对于多维数组,比如二维数组来说,有两种映射方法:按行优先 和 按列优先
按行优先:先行后列,先存储行号较小的元素,行号相等先存储列号较小的元素
按列优先:先列后行,先存储列号较小的元素,列号相等先存储行号较小的元素
在了解数组在内存中的存储方式后,我们可以开始用数组来存储矩阵中的元素了!
对于一个n阶方阵a中的任意一个元素ai,j都有ai,j=aj,i,则称为对称矩阵
对于一个对称矩阵我们可以将其中的元素划分为3个部分:上三角区,主对角线和下三角区
土办法
用一个n*n的数组去花的好词好句完完整整地将整个矩阵中的元素给存储下来。
压缩存储法
我们发现对于n阶对称矩阵,上三角区的所有元素与下三角区的所有元素相同,若采用上述的土办法,将会浪费几乎一半的空间,因此我们将其中重复相同的元素只存放一次。
存储主对角线和下三角区
可见,采取行优先的原则将主对角线和下三角区的元素存入数组b当中
那么在数组b当中,ai,j对应b[?]呢?我们可以自己通过计算得出一个映射公式
土办法
用一个n*n的数组去完完整整地郎朗音乐会将整个矩阵中的元素给存储下来。
压缩存储法
与对称矩阵不同之处在于,存储完下三角区和主对角线上的元素之后,紧接着存储对角线上方的常量一次。
按行存储主对角线和下三角区+常量c
按行存储主对角线和上三角区+常量c
对角矩阵称为带状矩阵;在三对角矩阵中,所有非零元素都集中在以主对角线为中心的3条对角线的区域,其他区域的元素都为零
压缩存储法
矩阵中非零元素的个数t,相对矩阵元素的个数s来说非常少,即s>>t的矩阵称为稀疏矩阵。
三元组存储
十字链表法
到此这篇关于c语言数组学习之特殊矩阵的压缩存储的文章就介绍到这了,更多相关c语言 矩阵的压缩存储内容请搜索www.887551.com以前的文章或继续浏览下面的相关文章希望大家以后多多支持www.887551.com!
本文发布于:2023-04-04 01:35:36,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/fanwen/zuowen/a22e35294c7bb22ca5777d4d31ae1d5c.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文word下载地址:C语言数组学习之特殊矩阵的压缩存储.doc
本文 PDF 下载地址:C语言数组学习之特殊矩阵的压缩存储.pdf
留言与评论(共有 0 条评论) |