External Quicksort Optimierung des Quicksort-Verfahrens für Speicherhierarchien Martin Gronemann, Bernd Zey.

Slides:



Advertisements
Ähnliche Präsentationen
DNA-Array oder DNA-Chip
Advertisements

Algorithmen und Komplexität Teil 1: Grundlegende Algorithmen
WS 03/041 Algorithmentheorie 01 - Einleitung Prof. Dr. S. Albers Prof. Dr. Th. Ottmann.
Kapitel 6: Klassifizierung von Sortiertechniken
3. Kapitel: Komplexität und Komplexitätsklassen
Kapitel 7. Sortier-Algorithmen
5. Sortier-Algorithmen Vorbemerkungen:
Sortierverfahren Richard Göbel.
Sortierverfahren Richard Göbel.
Vorlesung 15. Januar 2009.
WS 03/04 Algorithmentheorie 03 - Randomisierung Prof. Dr. S. Albers Prof. Dr. Th. Ottmann.
Algorithmen und Datenstrukturen
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (03 – Verschiedene Algorithmen für dasselbe Problem) Prof. Dr. Th. Ottmann.
WS Algorithmentheorie 01 – Divide and Conquer (Segmentschnitt) Prof. Dr. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (10 - Suchverfahren) T. Lauer.
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (03 – Verschiedene Algorithmen für dasselbe Problem) Prof. Dr. 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 4 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für Informatik Fakultät.
WS 06/07 Algorithmentheorie 01 - Einleitung Prof. Dr. Th. Ottmann Tobias Lauer.
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (03 – Verschiedene Algorithmen für dasselbe Problem) Prof. Dr. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (09 - Weitere Sortierverfahren) Prof. Th. Ottmann.
Geometrisches Divide and Conquer
Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUTE University of Paderborn Algorithms and Complexity Algorithmen und Komplexität Teil 1: Grundlegende.
Diskrete Mathematik I Vorlesung 9b AVL-Baum, Algorithmen.
Lösungen zu Übungsblatt 2: Datenstrukturen, WS 2001/02, Prof. R. Bayer Lösung 3.1:a 0 + a 1 x + a 2 x 2 = a 0 + x(a 1 + xa 2 ) + +** + * ** a 0 a 1 x a.
Externe Datenstruktur lineare Liste
LS 2 / Informatik Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
4 Sortierverfahren 4.1 Einführung 4.2 Naive Sortierverfahren
Eine Implementierung einer effiziente externe geordnete (!) lineare Liste Operationen: Search(x) Insert(x) Delete(x)
Sortieralgorithmen Sortieren von Arrays.
Algorithmen und Datenstrukturen SS 2005 Mag.Th. Hilpold u. Dr. A.Stritzinger Institut für Wirtschaftsinformatik- Software Engineering JKU Linz.
Algorithm Engineering Schnelles Sortieren Stefan Edelkamp.
Kapitel 6: Suchbäume und weitere Sortierverfahren
Externspeicher- Algorithmen:Teil 2
Algorithmen und Datenstrukturen
Mergesort.
Suchen und Sortieren.
Рассказываем о погоде МОУ СОШ №1 г.п.п Чистые Боры
mwb fairtrade Wertpapierhandelsbank AG
TOP 4: Hemmende u. fördernde Faktoren bei der Maßnahmenumsetzung in Niedersachsen – Teilprojekt Rodenberger Aue.
Entfaltung von
Algorithmen und Datenstrukturen
Non-Standard-Datenbanken
Algorithmen und Datenstrukturen
© Prof. Dr. Remo Ianniello
Die gleichmäßig beschleunigte Bewegung
Kurvenfahrt Hans fährt mit dem Auto mit einer Geschwindigkeit von 50km/h. Plötzlich taucht ein Hindernis vor ihm auf. Bremsen und geradeaus fahren oder.
Mechanik Der freie Fall Hallo – noch mehr Beschleunigung
Sortieren interaktiv.
Spektrumanalysator DMMSS17 Projekt Gruppe 04: Tianzhu, Cang
Schaltfunktionen und Logik
Christian Scheideler WS 2008
Übungsblatt 3 – Aufgabe 1 Schaukelndes Boot auf einem See
Leistung.
Sortieren interaktiv.
Wirkungsgrad.
Hochschule für Technik und Wirtschaft
Klasse 9c am Donnerstag, den
Physikalische Größen und Einheiten im Bereich des Stromes
Thema: Terme und Variablen Heute: Zahlen für Variablen einsetzen
Algorithmen und Datenstrukturen
Max und Leo angeln an einem kleinen See
Tangenten bestimmen Hin und wieder wird verlangt, dass man die Gleichung einer Tangente, z.B. einer Wendetangente, bestimmen soll. In seltenen Fällen.
...teilte mit,dass kürzlich ein neuer Virus entdeckt wurde...
Fenster zur Welt BRD und DDR – zwei Staaten, zwei Systeme in der geteilten Welt Die Schülerinnen und Schüler können (...) (4) den Nahost-Konflikt.
Meine Homepage: Herzlich willkommen!
Mit LGV-Seite! ER:FÜLLT 2019
breite Seite oben 5 cm kürzen
Die Kirche Julietta & Quricus Andiast
 Präsentation transkript:

External Quicksort Optimierung des Quicksort-Verfahrens für Speicherhierarchien Martin Gronemann, Bernd Zey

Überblick Quicksort - Erinnerung Intuitive Lösung Distribution-Sort (external Quicksort)

Quicksort - Erinnerung Pivot-Element: 23 R L 12 5 23 1 60 17 55 22 42 L 42 12 L L 22 1 L 1 60 55 23 17 R 23 17 R 60 55 R 12 5 22 1 60 17 55 42 23 12 5 22 1 60 23 55 42 17 12 5 23 1 60 17 55 22 42 12 5 23 1 60 17 55 22 42 12 12 5 42 23 1 60 17 55 22 5 12 5 22 1 17 55 42 60 23 1 5 22 17 42 60 12 23 55 1 5 17 22 42 60 12 23 55

Intuitive Lösung Lade den Wert des Pivot-Elements und die ersten und letzen B Array-Elemente in den Main Memory Starte normalen Quicksort Laden und Schreiben bei Bedarf

Intuitive Lösung: Beispiel EM: L R L R L R L R L R L R MM: L R L R L R L R Pivot

Analyse: Intuitive Lösung Analyse der I/O‘s äquivalent zur Laufzeitanalyse von Quicksort Pro Rekursionstiefe: O(N/B) I/O‘s benötigt Im average case beträgt die Rekursionstiefe O(log2 N) I/O-Anzahl O(N/B log2 N/B) interne Laufzeit O(N log2 N) Im worst case (N2)

Distribution Sort Mit mehreren Pivot-Elementen arbeiten Pivot-Elemente definieren „Buckets“ Element muss in „Bucket“ einsortiert werden Jeden „Bucket“ rekursiv sortieren bis Blockgröße B erreicht ist

Berechnung der Pivot-Elemente (1) Unterteile Eingabemenge in N/M Chunks Sortiere jeden Chunk Nehme jedes a-te Element aus jedem Chunk in Array U auf (|U| = N/a) Sortiere U Berechne µ-1 äquidistante Pivot-Elemente aus dem Array U mit BFPRT (Blum-Floyd-Pratt-Rivest-Tarjan)

Berechnung der Pivot-Elemente (2) Chunks (sortiert) Array U (sortiert) BFPRT µ-1 Pivot-Elemente

Analyse: Berechnung der Pivot-Elemente U kann mit O(N/B) I/O‘s erzeugt werden. BFPRT benötigt O((|U|/B) lg µ) = O((N/aB) lg µ) I/O‘s Für a ≥ lg µ: O(N/B) Insgesamt O(N/B) I/O‘s für die Berechnung der Pivot-Elemente

Rekursion Sortiere jedes Element in den richtigen „Bucket“ (Distribution) Bi := {x | pi ≤ x < pi+1} Starte Rekursion auf jedem „Bucket“ Wenn „Bucket“ Blockgröße erreicht hat dann intern sortieren

Beispiel µ=4 Pivot 1 Pivot 2 Pivot 3 -∞ ∞ Blockgröße Rekursionstiefe: O(logµN/B)

Analyse Rekursionstiefe bis zur Blockgröße: O(logµ N/B) I/O‘s Einsortieren kostet pro Rekursionstiefe O(N/B) I/O‘s Gesamt: O(N/B logµ N/B) I/O‘s

Literatur Alok Aggarwal and Jerey Scott Vitter, 1988: „The Input/Output Complexity of Sorting and Related Problems“ Jeff Erickson - Prof. an der University of Illinois: „Introduction: the standard external-memory model; upper and lower bounds for scanning (Θ(n)), searching (Θ(logB n) via B-trees), and sorting (Θ(n logm n) via mergesort); external comparison trees“ http://compgeom.cs.uiuc.edu/~jeffe/teaching/473/01-search+sort.pdf