Graphen
Spezielle Strukturen
Liste
Baum
Schleife/Kreise
Clique
Eigenschaften von Relationen
Nun betrachten wir spezielle Relationen auf einer Menge , um Ordnung (Struktur) in diese Menge zu bringen. Die Relationen werden dazu dienen, jeweils zwei Elemente zu vergleichen, etwa wie das auf den reellen Zahlen.
Transitiv: Wenn wir vor und vor einsortieren, sollte auch vor landen.
Antisymmetrisch: Für zwei verschiedene Elemente wollen wir eine eindeutige Reihung haben, es darf nicht und sein.
Reflexiv: Für soll auch gelten. (Für gilt dies nicht)
Partielle Ordnung
Eine transitive, antisymmetrische und reflexive Relation heißt partielle Ordnung.
Beispiel
Warum "partiell", sieht man am besten an einem Beispiel:
Sei die Potenzmenge einer beliebigen Menge, z.B. . Die Relation auf , also "ist Teilmenge von", erfüllt die Bedingungen an eine partielle Ordnung. Wenn die Ausgangsmenge aber wenigstens zwei Elemente enthält, ist die Potenzmenge dadurch noch nicht geordnet, da z.B. weder noch gilt.
Die Relation sollte also auch noch konnex sein.
(Totale) Ordnung
Eine konnexe partielle Ordnung nennt man (totale) Ordnung.
In einer endlichen Menge mit einer totalen Ordnung kann man die Elemente so nummerieren ( mit ), dass gilt:
(oder anders ausgedrückt: .
Beweis
Der Beweis ist konstruktiv. Wir geben einfach ein Verfahren (einen Algorithmus) an, das diese Ordnung herstellt (Quicksort).
Wir machen einen Induktionsbeweis nach . Für und ist nichts zu zeigen, also sei nun und der Satz gelte für alle Mengen mit .
Wir wählen ein beliebiges (man nennt es Pivotelement) und zerlegen in drei Mengen:
Nun ist , denn ist konnex: für jedes gilt oder und somit
Weiter sind die paarweise disjunkt: (Aufgabe: sortieren disjunkt).
Daher ist , mithin und . Wir wenden die Induktionsvoraussetzung an und nehmen an, dass und sortiert sind (in sind die Indizes um verschoben, das stört die Sortierung nicht). Dann ist auch mit der Nummerierung sortiert.
Dieser Induktionsbeweis lässt sich in ein rekursives Programm umsetzen, in dem man zur Sortierung der Teilmengen und das Programm selbst wieder aufruft.
Für den Beweis ist die Effizienz der Konstruktion egal. Ein echtes Sortierverfahren in der Praxis sollte aber effizient (schnell) sein.