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

时间:2013-03-20 04:57:59

标签: arrays sorting multidimensional-array

我有一个像

这样的多维数组
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更大。请给我一个函数来根据需要对这个数组进行排序..提前谢谢

2 个答案:

答案 0 :(得分:0)

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

因此,请使用任何排序算法,但在执行交换时,请交换两个维度的值。

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

答案 1 :(得分:0)

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

  1. rating
  2. 的降序排列
  3. mset
  4. 的降序排列

    使用任何稳定的排序算法(即,根据应用的排序标准不会改变元素相对位置的算法),您可以分几个阶段进行排序。

    首先,您使用辅助标准对输入进行排序,即按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)]
    

    这就是你问的吗?