mirror of
https://github.com/142vip/408CSFamily.git
synced 2026-04-13 18:00:58 +08:00
添加矩阵的压缩存储
This commit is contained in:
BIN
数据结构/栈和队列/.DS_Store
vendored
BIN
数据结构/栈和队列/.DS_Store
vendored
Binary file not shown.
67
数据结构/栈和队列/8.特殊矩阵的压缩存储.md
Normal file
67
数据结构/栈和队列/8.特殊矩阵的压缩存储.md
Normal file
@@ -0,0 +1,67 @@
|
||||
<!--
|
||||
* @Description: 特殊矩阵的压缩存储
|
||||
* @Version: Beta1.0
|
||||
* @Author: 【B站&公众号】Rong姐姐好可爱
|
||||
* @Date: 2021-03-20 16:18:51
|
||||
* @LastEditors: 【B站&公众号】Rong姐姐好可爱
|
||||
* @LastEditTime: 2021-03-20 17:04:44
|
||||
-->
|
||||
|
||||
|
||||
## 特殊矩阵的压缩存储
|
||||
|
||||
> 这部分知识我个人觉得以了解为主,复习、学习的时候还是要以前面的部分为主!
|
||||
|
||||
矩阵在`计算机图形学`、`工程计算`中占有举足轻重的地位。
|
||||
|
||||
|
||||
### 数组的定义
|
||||
|
||||
`数组`: 由n(n≥1)个相同类型的数据元素构成的有限序列。
|
||||
|
||||
每个数据元素称为一个数组元素,同时每个元素受n个线性关系的约束,**每个元素在n个线性关系中的序号称为元素的`下标`**,称为该数组为n的数组。
|
||||
|
||||
数组和线性表的关系:
|
||||
- 数组是线性表的推广。
|
||||
- 数组一旦被定义,维数和维界就不再改变。
|
||||
- 除了结构的初始化和销毁外,数组只会有存取元素和修改元素的操作。
|
||||
|
||||
|
||||
一维数组可以看做是一个线性表
|
||||
|
||||
二维数组可以看做元素是线性表的线性表
|
||||
|
||||
....
|
||||
|
||||
|
||||
### 矩阵的压缩存储
|
||||
|
||||
|
||||
`压缩存储`:多个值相同的元素只分配一个存储空间,对零元素不分配存储空间---->节省存储空间。
|
||||
|
||||
`特殊矩阵`:具有很多相同矩阵元素或零元素,并且这些相同矩阵元素或零元素的分布有一定规律性的矩阵。
|
||||
|
||||
- 对称矩阵
|
||||
- 上、下三角矩阵
|
||||
- 对角矩阵(带状矩阵)
|
||||
- ....
|
||||
|
||||
这里如果学过线性代数这本书,其实也就很好理解(赶紧去把数学知识捡起来鸭,噗呲哈哈啊哈)
|
||||
|
||||
`稀疏矩阵`:矩阵元素个数s相对于矩阵中非零元素的个数t来说非常多、差距非常大,即`s>>t的矩阵`可以叫`稀疏矩阵`
|
||||
|
||||
|
||||
注意:
|
||||
|
||||
- 常规方法来存储稀疏矩阵,会想当浪费存储空间,所以稀疏矩阵只需要存储非零元素
|
||||
- 通常非零元素的分布是没有规律的,除了存储非零元素外,还需要存储元素所在位置的行和列
|
||||
- 寻相互存储三元组 `<行标,列表,值>`
|
||||
|
||||
|
||||
|
||||

|
||||
|
||||
三元组的结点存储了行标(row)、列表(col)、值(value)三种信息,是主要用来存储稀疏矩阵的一种数据结构。
|
||||
|
||||
|
||||
**注意:矩阵压缩存储的目的就是为了节省空间,已经存过的就不存或者少存(经典想法)**
|
||||
BIN
数据结构/栈和队列/images/稀疏矩阵的存储变换.png
Normal file
BIN
数据结构/栈和队列/images/稀疏矩阵的存储变换.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 29 KiB |
Reference in New Issue
Block a user