数组
想象一下,数组就像一排排的座位,每个座位上都有一个编号,这样你就知道每个座位在哪里。数组就是一堆东西排成行和列,每个东西都有一个编号,我们叫它下标。
数组怎么存东西
当你把东西放进数组里,它们在电脑的大脑(内存)里是排成一长串紧紧挨着的。
多维数组
如果你有两层或者更多层的座位,比如电影院里的座位,你可以先按行来排,也可以按列来排。这就是多维数组的存储方式。
矩阵压缩存储
矩阵压缩存储就像是把一些空座位或者相同的座位合并起来,这样就不用占太多空间了。
特殊矩阵
特殊矩阵就像是一些有规律的座位排列,比如:
对称矩阵:就像镜子里的反射,左边的和右边的座位是一模一样的。
三角矩阵:只有下面或者上面的座位有人,中间的座位都是空的。
三对角矩阵:只有中间的三条线有人,其他地方都是空的。
稀疏矩阵:就像一个很大的电影院,但是只有零星几个人坐着,大部分座位都是空的。
存储方法
对于这些特殊矩阵,我们可以用一些聪明的方法来存:
对称矩阵:只需要存一半的座位信息。
三角矩阵和三对角矩阵:只需要存有“人”坐的那几条线。
稀疏矩阵:只需要记下哪些座位有人,不用管空的座位。
压缩存储的缺点
但是,如果你把座位压缩存储了,你就不能随便挑一个座位来看有没有人坐,这就像是失去了随机存取的能力。
知识点链接
数组概念
数组:由相同类型的数据元素构成的有限序列,元素通过下标进行索引。
数组的维界:下标取值的范围。
数组与线性表的关系:一维数组相当于线性表,二维数组可以看作是由线性表组成的线性表。
数组的存储结构
所有元素在内存中占用连续的存储空间。
多维数组映射方法
按行优先:按照一行一行的顺序存储。
按列优先:按照一列一列的顺序存储。
矩阵的压缩存储
压缩存储:为值相同的元素只分配一个存储空间,节省存储空间。
特殊矩阵:具有许多相同或零元素,且这些元素分布具有规律性的矩阵。
特殊矩阵类型
对称矩阵:方阵中任意元素a(i,j) = a(j,i),可以压缩存储在一维数组中。
三角矩阵:分为下三角矩阵和上三角矩阵。
下三角矩阵:上三角区元素为常量,压缩存储下三角区和主对角线元素后,存储常量一次。
上三角矩阵:下三角区元素为常量,压缩存储上三角区和主对角线元素后,存储常量一次。
三对角矩阵:除三条对角线外,其他元素为零,采用压缩存储。
稀疏矩阵:非零元素相对于总元素数非常少,采用三元组(行标,列标,值)存储。
存储方式
三元组存储:非零元素及其行和列信息。
十字链表法:另一种存储稀疏矩阵的方法。
压缩存储的特点
压缩存储后的稀疏矩阵失去了随机存取的特性。
公式和推导
文档中提到,如果记不住具体的存储位置计算公式,可以记住推导过程,在考试时现场推演。
总结
文档提供了矩阵压缩存储的基本概念、特殊矩阵的类型及其压缩存储方法,以及存储稀疏矩阵的两种主要方式。这些技术主要用于优化存储空间的使用,特别是在处理具有大量相同或零元素的大型矩阵时。