回 帖 发 新 帖 刷新版面

主题:C++

请问各位,怎么对二维数组进行大小排列,并且知道排列后的元素下标?谢谢各位了,急中

回复列表 (共3个回复)

沙发

二维数组排序的话有个取巧的办法,就是当一维数组来排,并且是建立索引数组排序
具体描述:二维数组是在内存中的一片连续空间。常见编译环境的默认编译参数下,多维数组按照行先序连续地存在于内存里。因此,二维数组a[M][N]可以按照a(i,j)->a(i*N+j)地映射为一维数组。如果要记录原先的下标,不如直接建立一个索引数组(比如c[M*N]={0,1,2,...,M*N-1}),然后按照原始数据对索引数组进行排列,输出的时候形如a[c[i]]地输出,而c[i]就是目标数据的原始下标

板凳

首先多谢你的解答!我觉得这样好像还未有的到我想要的,如:数组a[2][3]={3,5,4,8,7,6},如果用一维数组法排列好输出为8,7,6,5,4,3,我想知道的是各元素在二维数组中原来的位置,如6的原来位置是a[1][2];希望你还能帮我解答,在此先谢过!

3 楼

你可以保存原来的数组 做对比就可以得到原来的下标了

我来回复

您尚未登录,请登录后再回复。点此登录或注册