首页 理论教育 多维数组按行优先顺序存储规律简介

多维数组按行优先顺序存储规律简介

时间:2023-11-09 理论教育 版权反馈
【摘要】:①存放规则行优先顺序也称为低下标优先或左边下标优先于右边下标。,am-1 n-1,即二维数组按行优先顺序存放到内存后,也变成一个线性序列(线性表)。因此,可以得出多维数组按行优先顺序存放到内存中的规律:最左边下标变化最慢,最右边下标变化最快;右边下标变化一遍,与之相邻的左边下标才变化一次。同理,三维数组Am×n×p按行优先顺序存放的地址计算公式为:LOC=LOC+×1。

多维数组按行优先顺序存储规律简介

①存放规则

行优先顺序也称为低下标优先或左边下标优先于右边下标。具体实现时,应按行号从小到大的顺序,先将第一行中的元素全部存放好,再存放第二行元素、第三行元素……例如,对于前面提到的Am×n二维数组,可按如下形式存放到内存中:a00,a01,…,a0n-1,a10,a11,…,a1 n-1,…,am-1 0,am-1 1,…,am-1 n-1,即二维数组按行优先顺序存放到内存后,也变成一个线性序列(线性表)。

因此,可以得出多维数组按行优先顺序存放到内存中的规律:最左边下标变化最慢,最右边下标变化最快;右边下标变化一遍,与之相邻的左边下标才变化一次。因此,在算法中,最左边下标可以看成是外循环,最右边下标可以看成是最内循环。(www.xing528.com)

地址计算

由于多维数组在内存中排列成一个线性序列,那么,若知道第一个元素的内存地址,如何求得其他元素的内存地址?可以将它们的地址看成是一个等差数列,假设每个元素占1个字节,元素aij的存储地址应为第一个元素的地址加上排在aij前面的元素所占用的单元数,aij的前面有i行(0~i-1)共i×n个元素,而本行前面又有j个元素,所以aij的前面一共有i×n+j个元素。设a00的内存地址为LOC(a00),则aij的内存地址按等差数列可计算为LOC(aij)=LOC(a00)+(i×n+j)×1。同理,三维数组Am×n×p按行优先顺序存放的地址计算公式为:LOC(aijk)=LOC(a000)+(i×n×p+j×p+k)×1。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈