So sortieren Sie Objekte, die nur auf "Weniger als" basierend auf der Basis basieren?
-
29-09-2020 - |
Frage
sagen, ich habe n Objekte mit einem unbekannten Wert und einer von n-Matrix Z. So, dass Z (i, j)= 1, wenn der Wert des Objekts I weniger als der Wert des Objekts J ist, und Z (i, j)= 0 sonst.Wie kann ich diese N-Objekte sortieren, gegebenenfalls nur die Matrix Z?
Lösung
Was Sie suchen, ist ein Vergleichsort . Bitte werfen Sie einen Blick auf diesen Artikel.
Lassen Sie uns den Anforderungen an die Anforderung für zwei bestimmte Objekte, Objekt i und Object J, wenn sie in der endgültigen sortierten Liste erscheinen. Objekt, das ich vor dem Objekt J auftreten sollte, wenn Z (i, j)= 1. Objekt, das ich vor oder nach dem Objekt J auftreten kann, wenn Z (i, j)= z (j, i)= 0 ist.
As von BRAND erwähnt, sollten wir davon ausgehen, dass die Matrix Z eine genau definierte "Weniger als" Relation oder in Bezug auf MATH, eine totale strikte Ordnung auf den Werten der Objekte. Andernfalls dürfen die angegebenen Objekte nicht sortiert werden.
- .
- z [i, j]= 0 Wenn Z [J, i]= 1. Andernfalls können wir das Objekt I und Objekt J nicht sortieren.
- z [j, i]= 0, wenn z [i, k]= 1 und z [k, j]= 1 für ein paar k. Ansonsten können wir das Objekt I, J und K (denken Sie an Papierscheren-Rock) nicht sortieren.
gehen davon aus, dass Z eine genau definierte "Weniger als" Relation angibt. Dann definiert es auch einen Vergleichsvorgang mit " $ \ le $ ". Wenn z (j, i)= 0, dann Object i $ \ le $ object j. Wir können also einen beliebigen Vergleichsort anwenden, um den angegebenen
Nahezu alle Sortieralgorithmen sind Vergleichsortierungen. Zum Beispiel Quicksort, Mergesort, Einfügungssort, Selektion Sortieren und Blasen sortieren. Eine bemerkenswerte Ausnahme ist sortieren .