我有一个多维数组,像
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时,评级大于评级=8。请给我提供一个函数来排序这个数组的期望..提前感谢
我不太确定您在这里问什么,因为结尾有点不清楚。但我认为你想做的是:只根据第一维的值对二维数组进行排序。
所以使用任何排序算法,但是当你执行交换时,交换两个维度的值。
如果你有一些代码,我很乐意为你看看它,并提供更好的反馈。
我从你的问题中读到你有两个排序标准:
-
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)]
这是你问的吗?