矩阵

数组的存储结构

按行优先

  • 先行后列,先存行数较小的元素,若相等再存列号较小的元素

\(A_{2\times 3}= \begin{bmatrix} a_{00}&a_{01}&a_{02} \\ a_{10}&a_{11}&a_{12} \\ \end{bmatrix} \Rightarrow \begin{matrix} a_{00}&a_{01}&a_{02}&a_{10}&a_{11}&a_{12} \end{matrix}\)

按列优先

  • 先列后行,先存列数较小的元素,若相等再存行号较小的元素

\(A_{2\times 3}= \begin{bmatrix} a_{00}&a_{01}&a_{02} \\ a_{10}&a_{11}&a_{12} \\ \end{bmatrix} \Rightarrow \begin{matrix} a_{00}&a_{10}&a_{01}&a_{11}&a_{02}&a_{12} \end{matrix}\)

存储结构关系式

\(A_{m\times n}\)为 \(m\) 行 \(n\) 列的矩阵,\(m\)\(n\) 的下标均从 1 开始,\(a\) 的下标从 0 开始,\(L\) 为每个数组元素所占的存储单元

按行优先

  • 元素 \(a_{i,j}\) 的存储地址为:

\(LOC(a_{i,j})=LOC(a_{1,1})+[(i-1)\times n+(j-1)]\times L\)

按列优先

  • 元素的存储地址为:

\(LOC(a_{i,j})=LOC(a_{1,1})+[(j-1)\times m+(i-1)]\times L\)

存储地址之差

  • 对于数组 \(A_{n\times n}\),其元素 \(a_{i,j}\) 按行优先与按列优先存储时地址之差为 \((i-j)\times(n-1)\)

按高优先

三维数组按高下标优先进行存储

E.G.

  • 设整型数组 \(a[10][15][20]\),第一个数组元素地址为2000,每个元素占用4个字节,则按高下标优先,元素\(a[5][6][7]\) 的存储地址为

解:
    \(LOC=2000+(7\times 10\times 15+6\times 10+5)\times 4\)

矩阵的压缩存储

对称矩阵

  • 空间大小:\(\frac{n\times (n+1)}{2}\)
  • 元素 \(a_{i,j}\) 与其在数组 B 中的下标 K 之间的关系, \(a\) 的下标均从 1 开始,B 的下标从 0 开始

\(k=\begin{cases} \frac{i\times (i-1)}{2}+j-1,\qquad i\ge j(下三角和主对角线区域) \\[2ex] \frac{j\times (j-1)}{2}+i-1,\qquad i\lt j(上三角区域) \end{cases}\)

三角矩阵

  • 空间大小:\(\frac{n\times (n+1)}{2}+1\)
  • 最后一个元素:\(A\begin {bmatrix}\frac{n\times (n+1)}{2} \end{bmatrix}\)
  • 下三角矩阵元素 \(a_{i,j}\) 与其在数组 B 中的下标 K 之间的关系,\(a\) 的下标均从 1 开始,B 的下标从 0 开始

\(k=\begin{cases} \frac{i\times (i-1)}{2}+j-1,\qquad i\ge j(下三角元素)\\[2ex] \frac{n\times (n+1)}{2},\qquad\qquad\quad i\lt j(上三角元素) \end{cases}\)

  • 上三角矩阵元素 \(a_{i,j}\) 与其在数组B中的下标 K 之间的关系

\(k=\begin{cases} \frac{n\times (n+1)}{2},\qquad\qquad\qquad\quad i\ge j(下三角元素)\\[2ex] \frac{(i-1)(2n-i+2)}{2}+(j-i),\quad i\lt j(上三角元素) \end{cases}\)

稀疏矩阵

  • 非零元很少且分布没有规律的矩阵
  • 仅储存非 0 元素
  • 存储方式
    • 十字链表(链式存储)
    • 三元组(顺序存储)
      • 包含行标,列标,对应元素值

三对角矩阵

  • 也成为带状矩阵
  • 矩阵元素 \(a_{i,j}\) 与其在数组 B 中的下标 K 之间的关系,B 从 0 开始

\(k=2i+j-3\)

posted @ 2021-12-23 16:42  絵守辛玥  阅读(99)  评论(0)    收藏  举报