存储地址计算
s=sizeof(datatype)
一维数组 | &a[i]=&a[0]+i×\times×s |
二维数组(行优先) | k=i×\times×t2+j |
二维数组(列优先) | k=j×\times×t1+i |
三维数组 | l=i×\times×t2×\times×t3+j×\times×t1+k |
下三角矩阵 | k=i(i+1)2\frac{i(i+1)}{2}2i(i+1)+j |
上三角矩阵 | k=i(2n−i+1)2\frac{i(2n-i+1)}{2}2i(2n−i+1)+j-i |
对称矩阵(存储下三角) | k={i(i+1)2+ji≥jj(j+1)2+ii<jk=\begin{cases}\frac{i(i+1)}{2}+j& \text{i≥j}\\\frac{j(j+1)}{2}+i& \text{i<j}\end{cases}k={2i(i+1)+j2j(j+1)+ii≥ji<j |
三对角矩阵(带状矩阵) | k=2i+j |
稀疏矩阵
r行c列t项
转置算法 O(c×\times×t)
快速转置 O(r×\times×c)
线性表的顺序存储方式——顺序表
搜索 ACN=n+12\frac{n+1}{2}2n+1
插入 AMN=n2\frac{n}{2}2n
删除 AMN=n−12\frac{n-1}{2}2n−1