SortiernetzeOptimale Sortiernetze |
Sortiernetze sind spezielle Sortierverfahren, bei denen die Daten durch eine festliegende Folge von Vergleichs-Austausch-Schritten sortiert werden. Diese Vergleichs-Austausch-Schritte werden von Vergleichern durchgeführt; diese Vergleicher sind die Grundbausteine von Sortiernetzen.
Gesucht sind Sortiernetze mit
Sortiernetze lassen sich systematisch entwerfen. Die Sortiernetze mit den wenigsten Vergleichern sind dabei Bitonic Sort, Odd-even Mergesort und Shellsort. Alle diese Sortiernetze enthalten Θ(n log(n)2) Vergleicher.
Sortierverfahren wie Mergesort oder Heapsort haben lediglich eine Komplexität von Θ(n log(n)). Diese Verfahren lassen sich aber nicht als Sortiernetze implementieren, weil die durchgeführten Vergleiche datenabhängig sind. Bei einem Sortiernetz liegen die durchgeführten Vergleiche dagegen von vorneherein fest, sind also datenunabhängig.
Es gibt ein theoetisches Resultat, dass es auch Sortiernetze mit O(n log(n)) Vergleichern gibt [AKS 83]. Allerdings ist die Konstante, die sich hinter der O-Notation verbirgt, für jegliche praktische Verwendbarkeit bei weitem zu groß.
Daher ist es interessant, Sortiernetze mit möglichst wenigen Vergleichern (bzw. Vergleicherstufen) zu entwerfen und dabei zu versuchen, bessere Ergebnisse als die bisher bekannten zu erzielen.
Als untere Schranke für die Anzahl der Vergleicher eines Sortiernetzes mit n Eingängen lässt sich die informationstheoretische untere Schranke heranziehen. Sie besagt, dass zur Unterscheidung der n! möglichen Permutationen von n Zahlen mindestens log2(n!) Ja/Nein-Entscheidungen erforderlich sind. Jeder Vergleich stellt genau eine solche Ja/Nein-Entscheidung dar; daher benötigt jedes Sortiernetz mit n Eingängen mindestens log2(n!) Vergleicher.
Die folgende Tabelle zeigt die Anzahl V(n) der Vergleicher, die für Sortiernetze mit n8 Eingängen höchstens erforderlich sind [Knu 73] und die Anzahl I(n) der Vergleicher, die aufgrund der informationstheoretischen unteren Schranke mindestens erforderlich sind.
n | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
---|---|---|---|---|---|---|---|
V(n) | 1 | 3 | 5 | 9 | 12 | 16 | 19 |
I(n) | 1 | 3 | 5 | 7 | 10 | 13 | 16 |
Der Wert V(n) stellt eine obere Schranke für die Anzahl der Vergleicher in einem Sortiernetz mit n Eingängen dar; seine Gültigkeit wird bewiesen, indem ein entsprechendes Sortiernetz angegeben wird.
Es stellt sich heraus, dass für Sortiernetze die informationstheoretische untere Schranke nicht scharf genug ist. Sie berücksichtigt nicht die Einschränkung, dass bei Sortiernetzen die durchgeführten Vergleiche von vorneherein festliegen. In der Tat haben sich für n = 5, 6, 7, 8, 9, 10 die schärferen unteren Schranken U(n) = 9, 12, 16, 19, 25, 29 beweisen lassen. Damit sind die gefundenen Sortiernetze für n = 2, ..., 10 optimal. Ab n = 11 könnte es sein, dass sich noch bessere Sortiernetze finden lassen oder aber, dass sich schärfere untere Schranken beweisen lassen, oder beides.
Die folgenden Abbildungen zeigen entsprechende optimale Sortiernetze für n = 2, ..., 8 Eingänge:
| |
Bild 1: Minimales Sortiernetz N2 für n = 2 | |
| |
Bild 2: Minimales Sortiernetz N3 für n = 3 | |
| |
Bild 3: Minimales Sortiernetz N4 für n = 4 | |
| |
Bild 4: Minimales Sortiernetz N5 für n = 5 | |
| |
Bild 5: Minimales Sortiernetz N6 für n = 6 | |
| |
Bild 6: Minimales Sortiernetz N7 für n = 7 | |
| |
Bild 7: Minimales Sortiernetz N8 für n = 8 | |
Das Sortiernetz N8 ist entspricht dem Sortierverfahren Odd-even Mergesort.
Neben den oben dargestellten Sortiernetzen gibt es noch eine ganze Reihe anderer Sortiernetze, die ebenfalls optimal sind. Teilweise jedoch gehen diese lediglich durch Umordnen der Eingänge aus den oben dargestellten Sortiernetzen hervor.
Zwei Vergleicher [i:j] und [k:l] heißen unabhängig, wenn i, j, k, l paarweise verschieden sind. Eine Hintereinanderausführung von paarweise unabhängigen Vergleichern ist eine Vergleicherstufe. Innerhalb einer Vergleicherstufe können die Vergleicher auch parallel ausgeführt werden.
Es stellt sich daher die Frage nach Sortiernetzen mit möglichst wenigen Vergleicherstufen. Die folgende Tabelle gibt einen Überblick über die Anzahl S(n) der Vergleicherstufen, die in einem Sortiernetz mit n Eingängen höchstens erforderlich sind [Knu 73] sowie über die besten bekannten unteren Schranken R(n).
n | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
---|---|---|---|---|---|---|---|
S(n) | 1 | 3 | 3 | 5 | 5 | 6 | 6 |
R(n) | 1 | 3 | 3 | 5 | 5 | 6 | 6 |
Die oben dargestellten Sortiernetze sind somit auch hinsichtlich der Anzahl der Vergleicherstufen optimal. Bei Sortiernetzen mit mehr als 8 Eingängen sind die bisher bekannten Sortiernetze mit minimaler Anzahl von Vergleichern bzw. von Vergleicherstufen teilweise unterschiedlich.
[Knu 73] | D.E. Knuth: The Art of Computer Programming, Vol. 3 - Sorting and Searching. Addison-Wesley (1973) | |
[AKS 83] | M. Ajtai, J. Komlos, E. Szemeredi: An | |
[BB 11] | S.W. Al-Haj Baddar, K.E. Batcher: Designing Sorting Networks. Springer (2011) |
Weiter mit: [Minimale Sortiernetze mit 9,...,16 Eingängen] oder |
H.W. Lang Hochschule Flensburg lang@hs-flensburg.de Impressum Datenschutz © Created: 14.12.2014 Updated: 07.06.2018 |
Informatik in Flensburg studieren...
Neu gestaltetes Studienangebot:
Bachelor-Studiengang
Angewandte Informatik
mit Schwerpunkten auf den Themen Software, Web, Mobile, Security und Usability.
Ihr Abschluss
nach 7 Semestern:
Bachelor of Science
Ebenfalls ganz neu:
Master-Studiengang
Angewandte Informatik
Ein projektorientiertes Studium auf höchstem Niveau mit den Schwerpunkten Internet-Sicherheit, Mobile Computing und Human-Computer Interaction.
Ihr Abschluss
nach 3 Semestern:
Master of Science
Weitere Informatik-Studienangebote an der Hochschule Flensburg: