Как сортировать объекты, основанные только на отношениях «меньше, чем»?
-
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. Известное исключение является Сортировка Сортировка .