一、矩阵的定义
二、怎么压缩
- 可以以行序为主序将元素存放在一维数组a[n×(n + 1) / 2]中。
- aij前面有i-1行,前面i-1行一共有1+2+...i-1个元素,也就是(i-1)i/2
- 只看第i行,前面有j-1个元素
- 所以aij的地址=a11的地址+【(i - 1)i / 2】*sizeof(a11)+(j-1)*sizeof(a11)
2. 三角矩阵
- 第一种以行序为主序存储
- 第1行存放n个元素-----1
- 第2行存放n-1个元素-----2
- ...
- 第i-1行存放n-(i-1-1)=n-i+2个元素-----i-1
- 第i行存放n-(i-1)=n-i+1个元素
- aij前面有i-1行,前面i-1行有n+n-1+.....n-i+2个元素,也就是(i-1)(2n-i+2)/2
- 只看第i行,第i行的第一个元素为aii,所以aij前面有j - i个元素
- 所以aij的地址 = a11的地址 + 【(i - 1)(2n - i + 2) / 2】 * sizeof(a11) + (j - i) * sizeof(a11)
-
- 第二种以列序为主序存储
- aij前面有j-1列一共有1+2....+j-1个元素,也就是(j-1)j/2
- 只看第j列,前面有i-1个元素
- 所以aij的地址 = a11的地址 + 【(j - 1)j / 2】 * sizeof(a11) + (i - 1) * sizeof(a11)
- 以行为主序存储:
- aij前面有i - 1行,前面i - 1行一共有1 + 2 + ...i - 1个元素,也就是(i - 1)i / 2
- 只看第i行,前面有j - 1个元素
- 所以aij的地址 = a11的地址 + 【(i - 1)i / 2】 * sizeof(a11) + (j - 1) * sizeof(a11)
- 3.对角矩阵(带状矩阵)
- 特点:在n×n的方阵中,所有非零元素都集中自爱以主对角线为中心的带状区域,区域外的值全是0,则陈伟对角矩阵。
- 常见的有三对矩阵,五对角矩阵,七对角矩阵。
- 存储方法:以对角线的顺序存储
3.对角矩阵(带状矩阵)
4.稀疏矩阵