主题:C++
苍海踏浪
[专家分:0] 发布于 2010-07-04 23:52:00
请问各位,怎么对二维数组进行大小排列,并且知道排列后的元素下标?谢谢各位了,急中
回复列表 (共3个回复)
沙发
雪光风剑 [专家分:27190] 发布于 2010-07-05 05:52:00
二维数组排序的话有个取巧的办法,就是当一维数组来排,并且是建立索引数组排序
具体描述:二维数组是在内存中的一片连续空间。常见编译环境的默认编译参数下,多维数组按照行先序连续地存在于内存里。因此,二维数组a[M][N]可以按照a(i,j)->a(i*N+j)地映射为一维数组。如果要记录原先的下标,不如直接建立一个索引数组(比如c[M*N]={0,1,2,...,M*N-1}),然后按照原始数据对索引数组进行排列,输出的时候形如a[c[i]]地输出,而c[i]就是目标数据的原始下标
板凳
苍海踏浪 [专家分:0] 发布于 2010-07-05 11:56:00
首先多谢你的解答!我觉得这样好像还未有的到我想要的,如:数组a[2][3]={3,5,4,8,7,6},如果用一维数组法排列好输出为8,7,6,5,4,3,我想知道的是各元素在二维数组中原来的位置,如6的原来位置是a[1][2];希望你还能帮我解答,在此先谢过!
3 楼
alweeq86 [专家分:1170] 发布于 2010-07-05 12:15:00
你可以保存原来的数组 做对比就可以得到原来的下标了
我来回复