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?

War es hilfreich?

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 $ N $ Objekt zu sortieren.

Nahezu alle Sortieralgorithmen sind Vergleichsortierungen. Zum Beispiel Quicksort, Mergesort, Einfügungssort, Selektion Sortieren und Blasen sortieren. Eine bemerkenswerte Ausnahme ist sortieren .

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit cs.stackexchange
scroll top