我有一个像
这样的多维数组At index 0
mset =3
rating=5
At index 1
mset=4
rating=8
At index 2
mset=4
rating=9
At index 3
mset=5
rating=3
....我必须像这样排序第一个mset = 4然后mset = 3,等级> = 4然后mset = 5然后mset = 3,等级< 4。同样应该遵循每个mset降序的评级,就像我们必须首先显示mset = 4但是应该显示第一个index = 2,因为它的等级是9,它比index = 1时的rating = 8更大。请给我一个函数来根据需要对这个数组进行排序..提前谢谢
答案 0 :(得分:0)
我不确定你在这里问什么,因为结尾有点不清楚。但这就是我想你想做的事情:根据第一维的值对二维数组进行排序。
因此,请使用任何排序算法,但在执行交换时,请交换两个维度的值。
如果您有一些代码,我很乐意为您查看并提供更好的反馈。
答案 1 :(得分:0)
我从你的问题中读到的是你有两个排序标准:
rating
mset
使用任何稳定的排序算法(即,根据应用的排序标准不会改变元素相对位置的算法),您可以分几个阶段进行排序。
首先,您使用辅助标准对输入进行排序,即按mest
的降序排列。
然后使用主要标准对结果进行排序,即按rating
的降序排列。
对于此阶段排序,应用排序算法必须稳定。
让我们抽象地考虑你的例子。我们有
[(3, 5), (4, 8), (4, 9), (5, 3)]
在第一阶段之后我们得到
[(5, 3), (4, 8), (4, 9), (3, 5)]
在第二阶段之后我们得到
[(4, 9), (4, 8), (3, 5), (5, 3)]
这就是你问的吗?