欢迎来到天天文库
浏览记录
ID:57036179
大小:66.50 KB
页数:15页
时间:2020-07-27
《软件技术基础第02章数组课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、2.4数组(Array)数组的定义数组的存储结构特殊矩阵的存储及管理数组的操作11、数组的定义数组是相同类型数据元素的有限集合;数组中的各个分量称为数组元素;每个数组元素值可以用数组名和一个下标值唯一的确定;2数组元素之间的关系二维数组m行n列可以看作是m个或n个一维数组:Amxn=((a11a12…a1n),(a21a22…a2n),..(am1am2…amn))或:a11a12a1na21a22a2nAmxn=am1am2amn............32、数组的操作数组有两种基本的操作:给定下标,存取相应的数组元素;
2、给定下标,修改相应数组元素的值。43、数组的顺序存储结构数组元素是连续存放的,因此只能采用顺序存储结构。无论几维数组,在计算机中都是按一维数组来存放。数组存放通常采用两种方式:按行优先顺序按列优先顺序5按行优先顺序存储结构按行优先顺序存放是将数组看作若干个行向量。例如,二维数组Am×n,可以看作m个行向量,每个行向量n个元素。数组中的每个元素由元素的两个下标表达式唯一的确定。地址计算公式:LOC(aij)=LOC(a11)+((i-1)*n+(j-1))*L其中,L是每个元素所占的存储单元。6二维数组按行优先存储举例有二维
3、数组如下:a11a12a13a14A3x4=a21a22a23a24=a31a32a33a34123456789101112((a11,a12,a13,a14),(a21,a22,a23,a24),(a31,a32,a33,a34))LOC(a23)=LOC(a11)+(2-1)x4+(3-1)=7LOC(a34)=1+(3-1)x4+(4-1)=12LOC(a14)=1+(1-1)x4+(4-1)=47按列优先顺序存储结构按列优先顺序存放是将数组看作若干个列向量。例如,二维数组Am×n,可以看作n个列向量,每个列向量m个
4、元素。数组中的每个元素由元素的两个下标表达式唯一的确定。地址计算公式:LOC(aij)=LOC(a11)+((j-1)*m+(i-1))*L其中,L是每个元素所占的存储单元。8二维数组按列优先存储举例有二维数组如下:a11a12a13a14A3x4=a21a22a23a24=a31a32a33a34123456789101112((a11,a21,a31),(a12,a22,a32),(a13,a23,a33),(a14,a24,a34))LOC(a23)=LOC(a11)+(3-1)×3+(2-1)=8LOC(a34)=
5、1+(4-1)×3+(3-1)=12LOC(a14)=1+(4-1)×3+(1-1)=109数组地址计算举例例:设有二维数组A(6X8),每个元素占4个字节,A[0][0]的起始地址为1000,计算:(1)数组A共占多少个字节?6*8*4=192(2)数组的最后一个元素A[5][7]的起始地址1000+47*4=1188;1000+(5*8+7)*4=1188行优先1000+(7*6+5)*4=1188列优先(3)按行优先存放时,元素A[1][4]的起始地址1000+(1*8+4)*4=1048(4)按列优先存放时,元素A
6、[4][7]的起始地址1000+(7*6+4)*4=1184104、数组的压缩存储实际工程问题中推导出的数组常常是高阶、含大量零元素的矩阵,或者是些有规律排列的元素。为了节省存储空间,通常是对这类矩阵进行压缩存储。压缩的含义是:相同值的多个元素占用一个存储单元;零元素不分配存储单元。11能够采用压缩存储的矩阵对称矩阵存储主对角线以上(下)的元素;上(下)三角矩阵只存储三角阵元素;带状矩阵只存储带状元素;稀疏矩阵只存储非零元素;大量相同元素矩阵存储某元素和重复个数。12下三角矩阵顺序压缩存储按行存放下三角部分的元素N阶矩阵的
7、元素个数?存储的个数?n(n+1)/2用一维数组B存储,i,j从1开始,数组B下标从0开始矩阵元素的存放位置13对称矩阵的压缩存储对称矩阵的元素满足:aij=aji1i,jn因此将n*n个元素压缩存放到n(n+1)/2个单元的一维数组S((n+1)*n/2)中。aij的地址为:i(i-1)/2+j当ijLOC(aij)=j(j-1)/2+i当i8、23456LOC(a31)=3(3-1)/2+1=4LOC(a22)=2(2-2)/2+2=3LOC(a21)=2(2-1)/2+1=215
8、23456LOC(a31)=3(3-1)/2+1=4LOC(a22)=2(2-2)/2+2=3LOC(a21)=2(2-1)/2+1=215
此文档下载收益归作者所有