0

我有一个多维数组

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 with rating> = 4 然后 mset = 5 然后 mset = 3 with rating <4。此外,在每个 mset 中,应该按照评级的降序排列,因为我们必须首先显示 mset =4,但第一个 index=2 应该显示,因为它的评级是 9,它大于 index=1 的评级=8。请为我提供一个函数来根据需要对这个数组进行排序..提前谢谢

4

2 回答 2

0

我不确定你在这里问什么,因为结局有点不清楚。但这是我认为您想要做的:仅根据第一个维度的值对二维数组进行排序。

所以使用任何排序算法,但是当你执行交换时,交换两个维度的值。

如果您有一些代码,我很乐意为您查看并提供更好的反馈。

于 2013-03-20T05:04:09.833 回答
0

我从你的问题中读到的是你有两个排序标准:

  1. 按降序排列rating
  2. 按降序排列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)]

那是你问的吗?

于 2013-03-20T05:16:04.817 回答