根据评级对多维数组进行排序



我有一个多维数组,像

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。请给我提供一个函数来排序这个数组的期望..提前感谢

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

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

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

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

  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)]

这是你问的吗?

相关内容

  • 没有找到相关文章