多维数组
1、数组(向量)——常用数据类型 一维数组(向量)是存储于计算机的连续存储空间中的多个具有统一类型的数据元素。
同一数组的不同元素通过不同的下标标识。
(a
1,a
2,…,a
n)
2、二维数组
二维数组A
mn可视为由m个行向量组成的向量,或由n个列向量组成的向量。
二维数组中的每个元素a
ij既属于第i行的行向量,又属于第j列的列向量。
3、多维数组
三维数组A
mnp可视为以二维数组为数据元素的向量。四维数组可视为以三维数组为数据元素的向量……
三维数组中的每个元素a
ijk都属于三个向量。四维数组中的每个元素都属于四个向量……
4、数组的顺序存储方式
由于计算机内存是一维的,多维数组的元素应排成线性序列后存人存储器。
数组一般不做插入和删除操作,即结构中元素个数和元素间关系不变化。一般采用顺序存储方法表示数组。
(1)行优先顺序
将数组元素按行向量排列,第i+1个行向量紧接在第i个行向量后面。
【例】二维数组A
mn的按行优先存储的线性序列为:
a
11,a
12,…,a
1n,a
21,a
22,…,a
2n,……,a
m1,a
m2,…,a
mn
注意:
①PASCAL和C语言中,数组按行优先顺序存储。
②行优先顺序推广到多维数组,可规定为先排最右的下标。
(2)列优先顺序
将数组元素按列向量排列,第i+1个列向量紧接在第i个列向量后面。
【例】二维数组A
mn的按列优先存储的线性序列为:
a
11,a
21,…,a
m1,a
12,a
22,…,a
m2,……,a
1n,a
2n,…,a
mn
注意:
①FORTRAN语言中,数组按列优先顺序存储。
②列优先顺序推广到多维数组,可规定为先排最左的下标。
5、数组元素的地址计算公式
(1)按行优先顺序存储的二维数组Amn地址计算公式
LOC(a
ij)=LOC(a
11)+[(i-1)×n+j-1]×d
其中:
①LOC(a
11)是开始结点的存放地址(即基地址)
②d为每个元素所占的存储单元数
③由地址计算公式可得,数组中任一元素可通过地址公式在相同时间内存取。即顺序存储的数组是随机存取结构。
(2)按列优先顺序存储的二维数组Amn地址计算公式
LOC(a
ij)=LOC(a
11)+[(j-1)×m+i-1]×d
(3
)按行优先顺序存储的三维数组Amnp地址计算公式
LOC(a
ijk)=LOC(a
111)+[(i-1)×n×p+(j-1)×p+k-1]×d
(4)下界不为1的二维数组的地址计算公式
①二维数组A[c1..d1,c2..d2]的地址计算公式:
LOC(a
ij)=LOC(a
c1c2)+[(i-c1)×(d2-c2+1)+j-c2]×d
②下界为0的二维数组的地址计算公式(C语言中使用)
LOC(a
ij)=LOC(a
00)+[i×(d2+1)+j]×d
注意:
以下讨论的数组存储结构都以C语言下标表示。
python创建多维数组的定义 python 多维数组
转载本文章为转载内容,我们尊重原作者对文章享有的著作权。如有内容错误或侵权问题,欢迎原作者联系我们进行内容更正或删除文章。
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
Java 中数组的使用(一维数组和二维数组)
本文详细的介绍了,在Java 中数组的使用,并对其内存存在形式进行了详细的分析。
数组 一维数组 二维数组 java基础 -
python 多维数组下标 python多维数组定义
Python中初始化一个5 x 3每项为0的数组,最好方法是:
python学习 初始化 一维数组 Python -
python for 多维数组赋值 python定义多维数组
array——创建列表array可以创建指定维数的列表,也可以使用dtype指定数据的类型,实现代码块如下:
python for 多维数组赋值 python numpy 数据分析 数组