GitHub同步更新(已分类):Data_Structure_And_Algorithm-Review
公众号:URLeisure 的复习仓库
公众号二维码见文末
以下是本篇文章正文内容,下面案例可供参考。
数组的存储
-
数组是由相同类型的数据元素构成的有限集合。
-
一维数组可以看做一个线性表。
-
二维数组也可以看作一个线性表 X = (X0,X1,X2,…,Xn-1),只不过每一个数据元素 Xi 也是一个线性表。
-
同样,二维数组也可以看作一个线性表 Y = (Y0,Y1,Y2,…,Ym-1),只不过每一个数据元素 Yi 也是一个线性表。
一维数组:
二维数组
-
数组一般采用
顺序存储
结构,因为存储单元是一维的,而数组可以是多维的。 -
利用一组连续的存储单元来存储多维数组:
-
以二维数组为例,可以按行序存储,即先存第一行,再存第二行……也可以按列序存储,先存第一列,再存第二列……
-
c 语言,java 都是按行序存储的。
寻找存储位置
寻找 aij 的存储位置。
按行存储
-
如果每个元素占L字节,那么共需要 (i×n + j ) × L 字节,只要用基地址加上这些字节就可以得到 aij 的存储地址。
-
由图可计算出,LOC(aij) = LOC(a00) + (i×n + j ) × L。
按列存储
-
如果每个元素占L字节,那么共需要 (j×m + i ) × L 字节,只要用基地址加上这些字节就可以得到 aij 的存储地址。
-
由图可计算出,LOC(aij) = LOC(a00) + (j×m + i ) × L。
总结
- 计算时,注意下标的起始数字,本篇起始数字为 0。
关注公众号,感受不同的阅读体验
下期预告: 模式匹配 KMP 算法