1
0
mirror of https://github.com/Didnelpsun/CS408.git synced 2026-02-04 11:24:10 +08:00

更新矩阵

This commit is contained in:
Didnelpsun
2021-09-19 23:34:30 +08:00
parent dfc81c7e13
commit 55e55fbf4e
4 changed files with 104 additions and 10 deletions

10
.gitignore vendored
View File

@@ -5,12 +5,12 @@
*.html
*.htm
*.vs/
*.txt
*.idea/
*Debug/
*x64/
*out/
*cmake-build-debug
*cmake-build-debug-mingw
*cmake-build-debug-default
*cmake-build-debug-wsl
*/CMakeFiles
*build.mingw/
*build.default/
*build.wsl/
*build.cygwin/

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,45 @@
# 数组习题
## 三对角矩阵
**例题** 有一个$100$阶的三对角矩阵$M$,其元素$m_{i,j}$$1\leqslant i,j\leqslant100$)按行优先依次压缩存入下标从$0$开始的一维数组$N$中。元素$m_{30,30}$在$N$中的下标是()。
$A.86$
$B.87$
$C.88$
$D.89$
解:$B$。根据公式$k=2i+j-3$。但是这种公式很难记忆,所以直接找规律。
**例题** 若将$n$阶上三角矩阵$A$按列优先级压缩存放在一维数组$B[1\cdots n(n+1)/2+1]$中,则存放到$B[k]$中的非零元素$a_{i,j}$1\leqslant i,j\leqslant n$)的下标$i$、$j$与$k$的对应关系是()。
$A.i(i+1)/2+j$
$B.i(i-1)/2+j-1$
$C.j(j-1)/2+i$
$D.j(j-1)/2+i-1$
**例题** 若将$n$阶下三角矩阵$A$按列优先顺序压缩存放在一维数组$B[1\cdots n(n+1)/2+1]$中,则存放到$B[k]$中的非零元素$a_{i,j}$$1\leqslant i,j\leqslant n$)的下标$i,j$与$k$的对应关系是()。
$A.(j-1)(2n-j+1)/2+i-j$
$B.(j-1)(2n-j+2)/2+i-j+1$
$C.(j-1)(2n-j+2)/2+i-j$
$D.(j-1)(2n-j+1)/2+i-j-1$
**例题** 设有一个$12\times12$的对称矩阵$M$,将其上三角部分的元素$m_{i,j}$$1\leqslant i\leqslant j\leqslant12$)按行优先存入$C$语言的一维数组$N$中,元素$m_{7,2}$在$N$中的下标是()。
$A.50$
$B.51$
$C.55$
$D.66$

View File

@@ -14,7 +14,7 @@
各数组元素大小相同,且物理上连续存放。
数组元素a[i]的存放地址=起始地址LOC+i×sizeof(ElemType)。数组下标从0开始。
数组元素$a[i]$的存放地址=起始地址$LOC+i\times sizeof(ElemType)$。数组下标从$0$开始。
### 二维数组
@@ -23,13 +23,13 @@
+ 行优先:一行一行存储。
+ 列优先:一列一列存储。
已知二维数组b[M][N]。
已知二维数组$b[M][N]$
若按行存储b[i][j]的存储地址=起始地址LOC+(i×N+j)×sizeof(ElemType)。
若按行存储,$b[i][j]$的存储地址=起始地址$LOC+(i\times N+j)\times sizeof(ElemType)$
### 十字链表法
每个结点中包含行数、列数、元素值以及两个指针向下域指针down指向同第j列的下一个个元素向右域指针right指向同第i行的下一个元素。
每个结点中包含行数、列数、元素值,以及两个指针,向下域指针$down$指向同第$j$列的下一个个元素,向右域指针$right$指向同第i行的下一个元素。
## 特殊数组的压缩
@@ -37,6 +37,8 @@
特殊矩阵是指具有许多相同矩阵元素或零元素,并且这些相同矩阵元素或零元素的分布有一定规律的矩阵。
若是索引都从$1$开始,则公式不发生改变。
### 对称矩阵
若对一个$n$阶方阵$A[0,n-1][0,n-1]$中的任意一个元素$a_{ij}$都有$a_{ij}=a_{ji}$,即主对角线对称元素相等的矩阵,就是对称矩阵。
@@ -80,4 +82,4 @@
所以可以构成三元组(行标,列标,值)来存储。可以使用数组来存储也可以使用之前的十字链表法来存储。
稀疏矩阵压缩后就失去了随机存取的特性。
稀疏矩阵压缩后就失去了随机存取的特性。