2013-03-20 2 views
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 с рейтингом> = 4, то MSET = 5, затем mset = 3 с рейтингом < 4. Также, чтобы в каждом из mset в порядке убывания рейтинга следовало следовать так же, как мы должны сначала отобразить mset = 4, но первый индекс = 2 должен отображаться, поскольку его рейтинг равен 9, что больше, чем рейтинг = 8 при индексе = 1. Пожалуйста, предоставьте мне функцию для сортировки этого массива по желанию .. заблаговременно

+0

В вашем объяснении того, как вам нужно сортировать массив, у вас есть 'mset = 3' дважды, но в приведенном выше вводе это происходит только один раз. Где ошибка? – chris

ответ

0

Я не совсем уверен, что вы спрашиваете здесь, потому что конец немного неясен. Но вот что я думаю, что вы хотите сделать: Сортируйте двухмерный массив, основанный на значении только первого измерения.

Так что используйте любой алгоритм сортировки, но когда вы выполняете свои свопы, поменяйте значения для обоих размеров.

Если у вас есть код, я был бы рад посмотреть на него и предоставить лучшую обратную связь.

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

Это то, что вы спросили?

Смежные вопросы