怎么做投票网站,精美网页模板,做淘宝的人就跟做网站一样,杭州seo网站推广软件一.一维数组的存储结构#xff1a; 1.知道一维数组的起始地址#xff0c;就可以求出任意下标对应的元素所在的地址#xff1b;
2.注#xff1a;如果数组下标从1开始#xff0c;上述公式的i就要改为i-1#xff1b;
3.数组里的元素类型相同#xff0c;因此所占空间也相同… 一.一维数组的存储结构 1.知道一维数组的起始地址就可以求出任意下标对应的元素所在的地址
2.注如果数组下标从1开始上述公式的i就要改为i-1
3.数组里的元素类型相同因此所占空间也相同。 二.二维数组的存储结构 1.注数组的存储是连续(计算机的存储是线性的)的针对非线性的二维数组为了将其拉成线性结构就有了行优先和列优先两种存储方式
2.将非线性的二维数组整成线性的好处就是可以实现随机存取
3.行优先时计算存储地址公式中i为行j为列 4.列优先时计算存储地址公式中i为行j为列 三.普通矩阵的存储 四.对称矩阵(行数列数且关于主对角线对称)的压缩存储 由于对称矩阵关于主对角线对称因此在存储对称矩阵的数据时只需要存储对称的一部分即可。
以只存储主对角线下三角区域为例 1.数组大小即数组存储的数据个数
2.行优先中计算某个元素是第几个元素的公式推导i为行j为列i和j全从1开始(一定要注意下标起始位置)
该元素上方有i-1行第i行有i个元素(第i-1行有i-1个元素)因此前i-1行共有12...(i-1)个元素
该元素所在行从第一个元素到该元素需要j个元素所以该元素位置公式为[12...(i-1)]j 根据对称性下三角区域的元素将下标的行和列互换位置就可以访问上三角区域的元素 总结 要注意出题内容以进行对应的分析 五.三角矩阵的压缩存储 1.下三角矩阵除了主对角线和下三角区域外都是常量且值相同
2.上三角矩阵除了主对角线和上三角区域外都是常量且值相同
3.对于是常量且值相同的那一部分是无需重复存放那么多数据的因此只需要处理主对角线和对应的三角区域(不是常量的一部分)即可
4.将主对角线和对应的三角区域(不是常量的一部分)的数据存入一维数组需要的内存大小为(12...n)1 公式解读第n行有n个元素所以n行需要12...n最后还需要一个空间存放常量因此
总内存大小为(12...n)1 注上三角区域的数据都是值相同的常量被存放在同一个空间中在一维数组中下标都一样
同理对于上三角矩阵第一行有n个元素第二行有n-1个元素由此可得第i行有n-(i-1)个元素
所以第i-1行有n-[(i-1)-1]n-i2个元素前i-1行有12...(n-i2)个元素 六.三对角矩阵的压缩存储
i为行j为列 1.存储时只需要存储三对角矩阵中的非0元素即可
2.对于上述图片中三对角矩阵里蓝色框内的部分第一行和最后一行只有两个元素其他行都有三个元素
因此共有n行共有23(n-2)23n-2个元素,存储三对角矩阵的一维数组的长度为3n-2
3.求前i-1行有几个元素时只需要考虑第一行仅两个元素即可因为重点在前几行因此
前i-1行有23(i-1-1)3(i-1)-1个元素 4.此时第i行就是当前行所以小于或者等于第i-1行就是上面的行比他们大不可能取等
王道书中的k可以理解为要找的元素前总共有k个元素 七.稀疏矩阵的压缩存储
1.对于顺序存储稀疏矩阵可以创建一个结构体里面创建变量记录行列值也就是该结构体对应一个数据
再创建一个与该结构体对应的一维数组就可以顺序的存储稀疏矩阵
缺点顺序存储稀疏矩阵访问其中的元素时只能依次遍历无法随机存取 2.对于十字链表法定义如下图的数组数组里存指针(指针数组)都指向非0元素 八.总结