数组与矩阵
数组与矩阵:
数组:存储空间连接的表结构。
矩阵:带二维信息的数据,一般使用二维数据来存储矩阵。
特殊矩阵:
上三角形矩阵:
[0][1][3][6]
[ ][2][4][7]
[ ][ ][5][8]
[ ][ ][ ][9]
压缩方法:用一维数组进行存储
数组的长度:(n+1)*n/2
对应关系:(j+1)*j/2+i
i和j要满足:i<=j
下三角形矩阵
[0][ ][ ][ ]
[1][2][ ][ ]
[3][4][5][ ]
[6][7][8][9]
压缩方法:用一维数组进行存储
数组的长度:(n+1)*n/2,
对应关系:(i+1)*i/2+j。
i和j要满足:j<=i
对称矩阵:沿着0,0 1,1 2,2 … i,j 对称。
[0][1][3][6]
[1][2][4][7]
[3][4][5][8]
[6][7][8][9]
压缩方法:用一维数组进行存储,把它当作上三角或下三角即可。
数组的长度:(n+1)*n/2,
对应关系:(i+1)*i/2+j。
i和j要满足:如果j>i时候,交换它们的值。
对角矩阵:沿着0,0 1,1 2,2 … i,j 对角线的两边有数据。
[0][1][ ][ ]
[2][3][4][ ]
[ ][5][6][7]
[ ][ ][8][9]
压缩方法:用一维数组进行存储
数组的长度:3n-2,
对应关系:2i+j
i和j要满足:abs(i-j) <= 1
【数组与矩阵】稀疏矩阵:有效的信息不多,绝大多数都是无效信息都不需要存储,没有特定的标准,全凭感觉。
这些矩阵如果使用二维数组来存储的话,会非常浪费存储空间,为了节约空间,我们可以对这些矩阵进行压缩。
压缩方法:使用三元组进行压缩。
三元组:有三个数据项:行,列,值 构成一个整体,可顺序存储也可链式存储。
注意:稀疏矩阵压缩后就丢失的随机访问的功能。
推荐阅读
- JAVA(抽象类与接口的区别&重载与重写&内存泄漏)
- Docker应用:容器间通信与Mariadb数据库主从复制
- 《真与假的困惑》???|《真与假的困惑》??? ——致良知是一种伟大的力量
- 第326天
- Shell-Bash变量与运算符
- 逻辑回归的理解与python示例
- Guava|Guava RateLimiter与限流算法
- 我和你之前距离
- CGI,FastCGI,PHP-CGI与PHP-FPM
- 数组常用方法一