Как сортировать объекты, основанные только на отношениях «меньше, чем»?

cs.stackexchange https://cs.stackexchange.com/questions/121124

  •  29-09-2020
  •  | 
  •  

Вопрос

Скажем, у меня есть n объектов, каждая с неизвестным значением и Matrix Z. z. Такой, что z (i, j)= 1, если значение объекта I меньше значения объекта j, и z (I, j)= 0 иначе.Как я могу отсортировать эти N объекты, учитывая только матрицу Z?

Это было полезно?

Решение

Что вы ищете, это a Сравнение Сортировка . Пожалуйста, посмотрите на эту статью.


Давайте четко укажем требование для любых двух заданных объектов, объекта I и объекта j, когда они появляются в финальном отсортированном списке. Объект I должен произойти перед объектом j, если z (i, j)= 1. объект, который я могу возникнуть до или после объекта j, если z (i, j)= z (j, i)= 0.

Как упомянуто Vonbrand, мы должны предположить, что Matrix z указывает четко определенное «меньше, чем« отношение »или, с точки зрения математики, Общий строгий порядок на значениях объектов. В противном случае данные объекты не могут быть отсортированы.

    .
  • z [I, j]= 0, если z [j, i]= 1. В противном случае мы не можем сортировать объект i и объектом j.
  • z [j, i]= 0, если z [i, k]= 1 и z [k, j]= 1 для некоторых k. В противном случае мы не можем сортировать объект I, J и K (подумайте о бумаге-ножницах-рок).

Предположим, что z указывает четко определенное «меньше, чем« отношение ». Затем он также определяет « $ \ le $ " Сравнительная работа, естественным образом. А именно, если z (j, i)= 0, то объект i $ \ le $ объект j. Таким образом, мы можем применить любой сравнительный сортировку для сортировки заданного $ n $ объект.

Почти все алгоритмы сортировки являются сорварами сортировки. Например, QuickSort, MERGEORT, SORTE SORTION, SORT SORT и BUBBLE. Известное исключение является Сортировка Сортировка .

Лицензировано под: CC-BY-SA с атрибуция
Не связан с cs.stackexchange
scroll top