数据结构--特殊矩阵的压缩存储
2026/7/25 6:59:01 网站建设 项目流程

数组的存储结构

  • LOC == 起始地址

#一维数组

ElemType a[10]

#二维数组

ElemType b[M][N];
  • 行优先存储
    • b[i][j]的存储地址 = LOC + (i*N + j) * sizeof(ElemType)
  • 列优先存储
    • b[i][j]的存储地址 = LOC + (j*M + i) * size(ElemType)

特殊矩阵压缩存储

#对称矩阵

  • 只存储主对角线 + 下三角区
  • 只存储主对角线 + 上三角区
  • 数组大小 = (1 + 2 + 3 +…+ n)
  • 如何方便使用:
    • 可以实现一个映射函数:矩阵下标 -> 一维数组下标
    • ai,j是第i(i−1)2+j\frac{i(i-1)}{2} + j2i(i1)+j个元素,数组下标为i(i−1)2+j−1\frac{i(i-1)}{2} + j - 12i(i1)+j1
    • aj,i= ai,j,可以用相同方式计算

##出题方法

  1. 存储上三角?下三角?
  2. 行优先?列优先?
  3. 矩阵元素的下标从0?1?开始
  4. 数组下标从0?1?开始

#三角矩阵

  • 压缩存储策略:按行优先原则将下三角(举例)元素存入一维数组中。并在最后一个位置存储常量c
  • 上三角,下三角
  • 假如按行优先存储
    • ai,j= 数组下标
      • i(i−1)2+j−1\frac{i(i-1)}{2} + j - 12i(i1)+j1(下三角 i >= j)
      • n(n+1)2\frac{n(n+1)}{2}2n(n+1)(上三角 i <j)

#三对角矩阵(带状矩阵)



#稀疏矩阵

  • 策略1
  • 策略二

总结

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询