Sortieren vorsortierter Daten

Slides:



Advertisements
Ähnliche Präsentationen
8. Termin Teil B: Wiederholung Begriffe Baum
Advertisements

Eine dynamische Menge, die diese Operationen unterstützt,
DNA-Array oder DNA-Chip
Prof. Dr. S. Albers Prof.Dr.Th Ottmann
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (22 – B-Bäume)
Algorithmen und Datenstrukturen
Kapitel 6: Klassifizierung von Sortiertechniken
7. Natürliche Binärbäume
3. Kapitel: Komplexität und Komplexitätsklassen
Kapitel 7. Sortier-Algorithmen
Kapitel 6. Suchverfahren
R. Der - Vorlesung Algorithmen und Datenstrukturen (Magister)
5. Sortier-Algorithmen Vorbemerkungen:
Sortierverfahren Richard Göbel.
Sortierverfahren Richard Göbel.
WS Algorithmentheorie 05 - Treaps Prof. Dr. Th. Ottmann.
Funktionenklassen zur Messung der Komplexität
Algorithmen und Datenstrukturen
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (23 – Sortieren vorsortierter Daten) Prof. Th. Ottmann.
Algorithmen und Datenstrukturen
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (08 - Einfache Sortierverfahren) Prof. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (10 - Suchverfahren) T. Lauer.
Algorithmen und Datenstrukturen
Informatik II, SS 2008 Algorithmen und Datenstrukturen Vorlesung 24 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für Informatik Fakultät.
Halbzeit: Kurze Wiederholung
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (19 - Analyse natürlicher Bäume) Prof. Th. Ottmann.
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (24 – Sortieren vorsortierter Daten) Prof. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen Halbzeit: Was haben wir bisher gelernt? Prof. Th. Ottmann.
Algorithmen und Datenstrukturen
Informatik II, SS 2008 Algorithmen und Datenstrukturen Vorlesung 19 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für Informatik Fakultät.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (27 – Kürzeste Wege) Prof. Th. Ottmann.
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (23 –Relaxiertes Balanzieren) Prof. Th. Ottmann.
Informatik II, SS 2008 Algorithmen und Datenstrukturen Vorlesung 9 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für Informatik Fakultät.
Informatik II, SS 2008 Algorithmen und Datenstrukturen Vorlesung 4 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für Informatik Fakultät.
Anwendungen von Stapeln und Schlangen
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (17 – Bäume: Grundlagen und natürliche Suchbäume) Prof. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (21 - AVL-Bäume: Entfernen, Bruder-Bäume) Prof. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen 09 - Weitere Sortierverfahren Heapsort-Nachtrag Prof. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (18 - Bäume: Durchlaufreihenfolgen, Analyse nat. Bäume) Prof. Th. Ottmann.
Informatik II, SS 2008 Algorithmen und Datenstrukturen Vorlesung 2 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für Informatik Fakultät.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (20 - Balancierte Bäume, AVL-Bäume) Prof. Th. Ottmann.
Online Competitive Algorithms
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (27-Selbstanordnende lineare Listen) Prof. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (12 – Dynamische Tabellen) Prof. Th. Ottmann.
Informatik II, SS 2008 Algorithmen und Datenstrukturen Vorlesung 13 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für Informatik Fakultät.
Algorithmen und Datenstrukturen
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (20 - AVL-Bäume: Entfernen, Bruder-Bäume) Prof. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (07 - Skiplisten) Prof. Th. Ottmann.
Informatik II, SS 2008 Algorithmen und Datenstrukturen Vorlesung 12 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für Informatik Fakultät.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (09 - Weitere Sortierverfahren) Prof. Th. Ottmann.
Informatik II, SS 2008 Algorithmen und Datenstrukturen Vorlesung 16 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für Informatik Fakultät.
Algorithmen und Datenstrukturen
WS03/041 Binomial Queues Prof. Dr. S. Albers Prof.Dr.Th Ottmann.
Informatik II, SS 2008 Algorithmen und Datenstrukturen Vorlesung 6 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für Informatik Fakultät.
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Vorlesung 2 SWS WS 99/00 Gisbert Dittrich FBI Unido
Minimum Spanning Tree: MST
4 Sortierverfahren 4.1 Einführung 4.2 Naive Sortierverfahren
Splay Trees Von Projdakov Benjamin.
2. Die rekursive Datenstruktur Baum 2
Effiziente Algorithmen
Effiziente Algorithmen
Einführung in die Informatik für Naturwissenschaftler und Ingenieure
Mehrkriterielle Optimierung mit Metaheuristiken
1 Albert-Ludwigs-Universität Freiburg Rechnernetze und Telematik Prof. Dr. Christian Schindelhauer Informatik III Christian Schindelhauer Wintersemester.
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Geoinformation II 6. Sem. Vorlesung April 2000 AVL-Bäume.
Binärbäume.
Vorlesung AVL-Bäume/Algorithmen-
Vorlesung AVL-Bäume/Algorithmen-
Laufzeitverhalten beim Sortieren
2. Die rekursive Datenstruktur Baum 2.1 Von der Liste zum Baum
 Präsentation transkript:

Sortieren vorsortierter Daten Informatik II, SS 2008 Algorithmen und Datenstrukturen Vorlesung 23 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für Informatik Fakultät für Angewandte Wissenschaften Albert-Ludwigs-Universität Freiburg

Untere Schranke Allgemeine Sortierverfahren: Verwenden zur Feststellung der Ordnung nur Vergleichsoperationen zwischen Schlüsseln Satz Zum Sortieren einer Folge von n Schlüsseln mit einem allgemeinen Sortierverfahren sind im Worst-case ebenso wie im Mittel wenigstens (n log n) Vergleichsoperationen zwischen zwei Schlüsseln erforderlich. Modellierung von allgemeinen Sortierverfahren: Mit Hilfe von Entscheidungsbäumen. Informatik II: Algorithmen und Datenstrukturen, SS 2008 Prof. Dr. Thomas Ottmann

Entscheidungsbäume Gegeben ein allgemeines Sortierverfahren A: Entscheidungsbaum TA,n zur Modellierung des Ablaufs von A auf Folgen der Länge n enthält: Für jede der n! Permutationen ein Blatt. Innere Knoten repräsentieren eine Vergleichsoperation und haben zwei Söhne Weg W von der Wurzel zu einem Blatt v: Die Vergleiche an den Knoten von W identifizieren die Permutation v von v, entsprechen den von A durchgeführten Vergleichen, falls die Eingabe v ist. Beispiel: Sortieren durch Einfügen für Folge F = <k1, k2, k3, k4> von 4 Schlüsseln Informatik II: Algorithmen und Datenstrukturen, SS 2008 Prof. Dr. Thomas Ottmann

Beispiel eines Entscheidungsbaums 1:2 1:3 2:4 2:3 3241 4321 3421 3:4 1:4 3214 2341 4231 2431 2314 2143 4213 2413 2134 3142 4312 3412 3124 1342 4132 1432 1324 1243 4123 1423 1234 Informatik II: Algorithmen und Datenstrukturen, SS 2008 Prof. Dr. Thomas Ottmann

Vorsortierungsmaß Inversionszahl Messung der Vorsortierung für eine Folge F durch Inversionszahl: Anzahl inv(F) der Inversionen von F: Beispiel: F = <15, 2, 43, 17, 4, 8, 47> F aufsteigend sortiert: F absteigend sortiert: Beispiel: n/2+1,…,n,1,…,n/2 Informatik II: Algorithmen und Datenstrukturen, SS 2008 Prof. Dr. Thomas Ottmann

Anzahl aufsteigend sortierter Teilfolgen Beispiel: F = <15, 2, 43, 17, 4, 8, 47> F aufsteigend sortiert: F absteigend sortiert: runs mißt die lokale Vorsortierung Informatik II: Algorithmen und Datenstrukturen, SS 2008 Prof. Dr. Thomas Ottmann

Längste aufsteigende Teilfolge las(F) = Länge der longest ascending sub-sequence(F) = Beispiel: F: 15, 2, 43, 17, 4, 8, 47 las(F)= rem(F) = n – las(F) F aufsteigend: rem(F) = 0 absteigend: rem(F) = n - 1 Informatik II: Algorithmen und Datenstrukturen, SS 2008 Prof. Dr. Thomas Ottmann

Optimale Nutzung der Vorsortierung Gegeben sei ein Vorsortierungsmaß m Frage: Was ist ein m-optimales, allgemeines Sortierverfahren? Ziel: Für jeden Wert m0 von m soll nur die für Folgen dieses Vorsortiertheitsgrades nötige Schrittzahl verwendet werden. Untere Schranke für Anzahl der nötigen Schlüsselvergleiche ? Anzahl der Blätter im Entscheidungsbaum mit Informatik II: Algorithmen und Datenstrukturen, SS 2008 Prof. Dr. Thomas Ottmann

Optimale Nutzung der Vorsortierung Definition: Ein Sortierverfahren A heißt m-optimal, falls es eine Konstante c gibt, so dass für alle n und alle Folgen F mit Länge n die Zeit TA(F) zum Sortieren von F mit A wie folgt beschränkt ist: Informatik II: Algorithmen und Datenstrukturen, SS 2008 Prof. Dr. Thomas Ottmann

Adaptives Sortieren Adaptives Sortieren (A-Sort) ist eine Variante des Sortierens durch Einfügen. Man fügt jeweils nächsten Schlüssel in die bereits sortierte Teilfolge ein, indem man die Einfügestelle vom rechten Ende her sucht. Für eine Folge F = <k1, k2, …kN> kann die Inversionszahl inv(F) wie folgt dargestellt werden: inv(F) = |{(i, j ); 1 ≤ i < j ≤ N und ki > kj }| = h1 + h2 + … + hN mit hj = |{ i ; 1 ≤ i < j ≤ N und ki > kj }| = Anzahl der dem j-ten Element kj in der gegebenen Folge vorangehenden Elemente, die bei aufsteigender Sortierung kj nachfolgen müssen Informatik II: Algorithmen und Datenstrukturen, SS 2008 Prof. Dr. Thomas Ottmann

Beispiel Sei F die Folge F = < 5, 1, 7, 4, 9, 2, 8, 3, 6 > Nächstes einzufügendes Element ki hi = Abstand der Einfügestelle vom Listenende Nach Einfügen erhaltene Liste mit Markierung der Einfügestelle Informatik II: Algorithmen und Datenstrukturen, SS 2008 Prof. Dr. Thomas Ottmann

Balanzierter Blattsuchbaum Informatik II: Algorithmen und Datenstrukturen, SS 2008 Prof. Dr. Thomas Ottmann

A-Sort Implementation ... ... . Einfügestelle Finger Informatik II: Algorithmen und Datenstrukturen, SS 2008 Prof. Dr. Thomas Ottmann

Balanzierter Blattsuchbaum Verwende balanzierten Blattsuchbaum zur Bestimmung der Einfügestelle vom rechten Ende der sortierten Teilfolge. Benutzt man beispielsweise Bruder-Bäume oder Z-stratifizierte Bäume, so ist der gesamte Umstrukturierungsaufwand zum Einfügen von N Schlüsseln in den anfangs leeren Baum von der Größenordnung O(N). Der amortisierte Umstrukturierungsaufwand pro Einfügeoperation ist also konstant! Verwendung des balanzierten Blattsuchbaumes erlaubt es, die Einfügestelle für das jeweils nächste Element in O(h + 1) Schritten zu bestimmen, wenn h der Abstand des Elementes vom Ende der bereits sortierten Teilliste ist. Informatik II: Algorithmen und Datenstrukturen, SS 2008 Prof. Dr. Thomas Ottmann

Sortieraufwand Aufwand zum Sortieren einer Folge F von N Elementen mit A-Sort: T(F) = Umstrukturierungsaufwand + Suchaufwand = O(N ) +  j=1N (log ( hj + 1))  j=1N (log ( hj + 1)) = N log (1 + inv(F)/N ) Informatik II: Algorithmen und Datenstrukturen, SS 2008 Prof. Dr. Thomas Ottmann

Inv-Optimalität von A-Sort Falls inv(F)  O(N), ist N log (1 + inv(F)/N ) = O(N ). Falls inv(F)  O(N2), ist N log (1 + inv(F)/N ) = O(N log N ). Man kann zeigen, dass gilt: log (|{F‘ ; inv(F‘ ) ≤ inv(F)}|)  Ω (N log(1 + inv(F)/N )) Daher ist A-Sort inv-optimal! A-Sort ist nicht runs-optimal, denn (1) dann müsste A-Sort alle Folgen mit 2 Runs in linearer Zeit sortieren! (2) Es gibt aber eine Folge mit nur zwei Runs, für die der Sortieraufwand mit A-Sort von der Ordnung Ω (N log N ) ist Informatik II: Algorithmen und Datenstrukturen, SS 2008 Prof. Dr. Thomas Ottmann

Folgen von N Elementen mit 2 Runs Bew (1): Es gibt höchstens O(2N) Folgen mit nur 2 Runs: Wähle alle 2N möglichen Teilmengen von N Elementen, bilde jeweils aus einer Teilmenge den ersten Run und aus den restlichen Elementen den zweiten Run. Wäre A-Sort runs-optimal, müsste für jede Folge F mit höchstens zwei Runs gelten: TA(F ) ≤ c ( N + log( |{F‘ ; runs(F‘ ) ≤ 2 }| ) ) = c ( N + log 2N )) = O(N ) Bew (2): Suche eine Folge mit 2 Runs, zu deren Sortierung A-Sort viel Zeit braucht! Informatik II: Algorithmen und Datenstrukturen, SS 2008 Prof. Dr. Thomas Ottmann