java二维数组排序先行后列,数组的顺序存储及(C语言)实现

数组结构的实现使用的是顺序存储结构。

要知道,对数组中存储的数据做插入和删除操作,算法的效率是很差的。

由于数组可以是多维的,而顺序存储结构是一维的,因此数组中数据的存储要制定一个先后次序。通常,数组中数据的存储有两种先后存储方式:

以列序为主(先列后行):按照行号从小到大的顺序,依次存储每一列的元素

以行序为主(先行后序):按照列号从小到大的顺序,依次存储每一行的元素。

多维数组中,我们最常用的是二维数组。比如说,当二维数组 a[6][6] 按照列序为主的次序顺序存储时,数组在内存中的存储状态如

03ce3b0b5fde4fa5c3cf874e0f2a7779.png

图 1 以列序为主的二维数组存储状态

同样,当二维数组 a[6][6] 按照行序为主的次序顺序存储时,数组在内存中的存储状态如图 2 所示:

c2f0d691815a2dcf5d83c2b4e11b4c3f.png

图 2 以行序为主的二维数组存储状态

C 语言中,多维数组的存储采用的是以行序为主的顺序存储方式。

通过以上内容,我们掌握了将多维数组存储在一维内存空间的方法。那么,后期如何对指定的数据进行查找和修改操作呢?

多维数组查找指定元素

当需要在顺序存储的多维数组中查找某个指定元素时,需知道以下信息:

多维数组的存储方式;

多维数组在内存中存放的起始地址;

该指定元素在原多维数组的坐标(比如说,二维数组中是通过行标和列标来表明数据元素的具体位置的);

数组中数组的具体类型,即数组中单个数据元素所占内存的大小,通常用字母 L 表示;

根据存储方式的不同,查找目标元素的方式也不同。如果二维数组采用以行序为主的方式,则在二维数组 anm 中查找 aij 存放位置的公式为:

LOC(i,j) = LOC(0,0) + (i*m + j) * L;

其中,LOC(i,j) 为 aij 在内存中的地址,LOC(0,0) 为二维数组在内存

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值