Algorithm Engineering Schnelles Sortieren Stefan Edelkamp.

Slides:



Advertisements
Ähnliche Präsentationen
Algorithmen und Datenstrukturen
Advertisements

Datenstrukturen und Algorithmen
DNA-Array oder DNA-Chip
DNA-Array oder DNA-Chip
Spezialvorlesung Suchalgorithmen Thema: Einzelzustandsraumsuche Stefan Edelkamp.
Algorithmen und Komplexität Teil 1: Grundlegende Algorithmen
Sortieren I - Bubblesort -
LS 2 / Informatik Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
GIN2 – 2. Vorlesung, SS04 Prof. Dr. Wolfram Conen
Kapitel 6: Klassifizierung von Sortiertechniken
Prioritätswarteschlangen
3. Kapitel: Komplexität und Komplexitätsklassen
Kapitel 7. Sortier-Algorithmen
5. Sortier-Algorithmen Vorbemerkungen:
Gestaltung von Lernprogrammen zu Algorithmen für aktives Lernen mit virtuellen Brettspielen Nils Faltin Computer Graphics.
Sortierverfahren Richard Göbel.
Sortierverfahren Richard Göbel.
Vorlesung 15. Januar 2009.
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 (10 - Suchverfahren) T. Lauer.
Prof. Dr. S. Albers Prof. Dr. Th. Ottmann
Halbzeit: Kurze Wiederholung
Sortieren vorsortierter Daten
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
Vorlesung Informatik 2 Algorithmen und Datenstrukturen 09 - Weitere Sortierverfahren Heapsort-Nachtrag Prof. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (09 - Weitere Sortierverfahren) Prof. Th. Ottmann.
Deklaratives Debugging (Seminar Software Engineering) Tim Sender Deklaratives Debugging Seminar Software Engineering.
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Vorlesung 2 SWS WS 99/00 Gisbert Dittrich FBI Unido
Diskrete Mathematik I Vorlesung 9b AVL-Baum, Algorithmen.
Vortrag: Ingo Gensch, Mathias Reich am:
ADS – Vorlesung Prof. Dr. Wolfram Conen
Algorithm Engineering Sommersemester 2009 Universität Bremen
LS 2 / Informatik Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
4 Sortierverfahren 4.1 Einführung 4.2 Naive Sortierverfahren
Algorithmen Gruppe 4.
Sortieralgorithmen Sortieren von Arrays.
Effiziente Algorithmen
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
External Quicksort Optimierung des Quicksort-Verfahrens für Speicherhierarchien Martin Gronemann, Bernd Zey.
Beispielanimation Heap-Sort
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.
Algorithm Engineering „Zeichenkettensuche“
Algorithm Engineering „GPU Algorithmen“
Anforderungen und Inhalte
? Laufzeit Speicherbedarf Bubblesort Quicksort Selectionsort Radixsort
Kapitel 5: Von Datenstrukturen zu Abstrakten Datentypen
Grundlegende Sortieralgorithmen
Sortieralgorithmen Greedy Sortieren: Sortieren durch Auswahl, Einfügen und Austauschen Divide-and-Conquer-Sortieren: Quicksort und merge sort Foliensatz.
BUSINESS & ECONOMICS OVERVIEW 5 HRD. 5th term Business Plan Investment & Financing Banks Financial market: Sock exchange, Shares, Bonds, etc. Management.
Mag. Thomas Hilpold, Universität Linz, Institut für Wirtschaftsinformatik – Software Engineering 1 Algorithmen und Datenstrukturen 1 SS 2002 Mag.Thomas.
Algorithmen und Datenstrukturen
Algorithmen und Datenstrukturen
Mergesort.
Algorithm Engineering „Suffix-Bäume und Suffix-Arrays“ Stefan Edelkamp.
Allgemeine Formulierung des Suchproblems
Algorithmen und Datenstrukturen Prof. Dr. Ralf Möller Universität zu Lübeck Institut für Informationssysteme Tanya Braun (Übungen) sowie viele Tutoren.
Suchen und Sortieren.
Algorithmen und Datenstrukturen
Algorithmen und Datenstrukturen
Amortisierte Analyse: Buchhaltermethode
Vorlesung AVL-Bäume/Algorithmen-
Vorlesung AVL-Bäume/Algorithmen-
Heap Operationen Folien bitte als Vollbild-Bildschirmpräsentation (Taste F5) betrachten! Vorlesung Algorithmen und Datenstrukturen, WS10/11, C. Eckert.
ADS – Vorlesung Prof. Dr. Wolfram Conen
Algorithmen und Datenstrukturen
 Präsentation transkript:

Algorithm Engineering Schnelles Sortieren Stefan Edelkamp

Überblick Kriterien für Sortierverfahren State-of-the-Art Clever-Quicksort Heapsort Weak-Heapsort Quick-Heapsort Radix-Exchange-Sort Sortieren durch Fachverteilung

Kriterien für Sortierverfahren

State-of-the-Art

State-of-the-Art (2)

State-of-the-Art (3)

Clever-Quicksort (Median-of-3)

Σ

Implementierung Siehe Sedgewick: The analysis of quicksort programs, Acta Informatica, Journal of Algorithms, 15(1):76-100, 1993

Heapsort

Definition

Veranschaulichung

Entfernen des Maximums

Versickern

Pseudo-Code

Erstellung eines Heaps

Äußere Schleife

Analyse Iteriertes Versickern Σ

Analyse

Beobachtung

Bottom-Up- Heapsort

Pseudo-Code (1)

Pseudo-Code (2)

Worst-Case

Average Case

Weak-Heap-Sort

Verschmelzen

Generieren eines Weak-Heaps

Sortierung

Arrayeinbettung

3 Fälle

Pseudo Code

Analyse Σ

Engineering

Quick-Heapsort

Σ Σ

Pseudo-Code

Pseudo-Code (2)

Pseudo- Code (3)

Radix- Sort

Radix-Exchange-Sort

Beispiel

Unterscheidene Präfixe

Analyse

Sortieren durch Fachverteilen

Analyse

Illustration

Pseudo-Code (1)

Pseudo- Code (2)

Adaptives Sortieren Inversionen Inv(X) = {(i,j) | 1 <= i < j <= n und xi > xj} Ziel AE: 1*n log (Inv(X)/n)+O(n) Wenn Inv(X) = O(n²) n log n + O(n) Inversions-optimal := Laufzeit O(n log (Inv(X)/n)+n) Informationstheoretische Grenze: Ω(n log (Inv(X)/n)+n)

Kartesischer Baum Der kartesische Baum TF von F[1..n] ist ein geordneter gewurzelter Baum mit n Knoten. Der kartesische Baum des leeren Feldes ist der leere Baum. Sei k = min (1,n). Die Wurzel von TF ist markiert mit k, die Kinder sind die kartesischen Bäume von F[1..k 1] und F[k+1..n] (wobei F[i..j] das leere Feld ist, falls j < i).

Konstruktion (a la wikipedia) Process the sequence values in left-to-right order, maintaining the Cartesian tree of the nodes processed so far, in a structure that allows both upwards and downwards traversal of the tree. To process each new value x, start at the node representing the value prior to x in the sequence and follow the path from this node to the root of the tree until finding a value y smaller than x. This node y is the parent of x, and the previous right child of y becomes the new left child of x. The total time for this procedure is linear, because the time spent searching for the parent y of each new node x can be charged against the number of nodes that are removed from the rightmost path in the tree

Levcopoulos–Petersson Algorithmus Konstruiere Karteschen Baums für die Eingabe Initialisiere PQ mit der Wurzel des kartesischen Baumes Solange PQ nicht leer: 1.Finde und lösche den min. Wert x in PQ (DeleteMin) 2.Gebe x aus 3.Füge die Kinder von x im kartesischen Baum zu PQ hinzu (Insert)

Zeit

Vergleiche