6 Quicksort. die mittlere Laufzeit Θ(n log n) beträgt und. die in der asymptotischen Notation verborgenen Konstanten sehr klein sind.

Größe: px
Ab Seite anzeigen:

Download "6 Quicksort. die mittlere Laufzeit Θ(n log n) beträgt und. die in der asymptotischen Notation verborgenen Konstanten sehr klein sind."

Transkript

1 Algorithmen und Datenstrukturen Quicksort In diesem Abschnitt wird Quicksort, ein weiterer Sortieralgorithmus, vorgestellt. Trotz einer eher langsamen Worst-Case Laufzeit von Θ(n 2 ) ist Quicksort in der Praxis oft vorzuziehen, da die mittlere Laufzeit Θ(n log n) beträgt und die in der asymptotischen Notation verborgenen Konstanten sehr klein sind. Ferner sortiert Quicksort an Ort und Stelle. 6 Quicksort TU Bergakademie Freiberg, WS 2005/06

2 Algorithmen und Datenstrukturen Beschreibung von Quicksort Es handelt sich wieder um ein divide-and-conquer Verfahren. Die Grundschritte zum Sortieren eines Teilfeldes A[p.. r] lauten Zerlegen: Das (evtl. umgeordnete) Feld A[p.. r] wird in zwei (möglicherweise leere) Teilfelder A[p.. q 1] und A[q r] so zerlegt, dass { A[q] j = p,..., q 1, A[j] > A[q] j = q + 1,..., r. Die Trennschwelle q wird im Algorithmus bestimmt. Sortieren: Sortiere die Teilfelder A[p.. q 1] und A[q + 1,.. r] durch rekursive Anwendung von Quicksort. Zusammensetzen: Da die Teifelder an Ort und Stelle sortiert werden ist A[p.. r] nach dem Sortieren der Teilfelder vollständig sortiert. 6.1 Beschreibung von Quicksort TU Bergakademie Freiberg, WS 2005/06

3 Algorithmen und Datenstrukturen 134 Damit ergibt sich folgende Pseudocode-Darstellung von Quicksort: QUICKSORT(A, p, r) 1 if p < r 2 then q PARTITION(A, p, r) 3 QUICKSORT(A, p, q 1) 4 QUICKSORT(A, q + 1, r) Die Anwendung von QUICKSORT zum Sortieren des gesamten Eingabefeldes erfolgt durch den Aufruf QUICKSORT(A, 1, length[a]). 6.1 Beschreibung von Quicksort TU Bergakademie Freiberg, WS 2005/06

4 Algorithmen und Datenstrukturen 135 Die eigentliche Arbeit wird im Algorithmus PARTITION verrichtet, durch welchen ein Teilfeld A[p.. r] umgeordnet und partitioniert wird. PARTITION(A, p, r) 1 x A[r] 2 i p 1 3 for j p to r 1 4 do if A[j] x 5 then i i vertausche A[i] A[j] 7 vertausche A[i + 1] A[r] 8 return i + 1 Hier wird das letzte Feldelement A[r] als Pivotelement gewählt, um das herum das Feld partitioniert wird. 6.1 Beschreibung von Quicksort TU Bergakademie Freiberg, WS 2005/06

5 Algorithmen und Datenstrukturen 136 Beispiel für eine Ausführung von PARTITION: Beschreibung von Quicksort TU Bergakademie Freiberg, WS 2005/06

6 Algorithmen und Datenstrukturen 136 Beispiel für eine Ausführung von PARTITION: p r i = 0 j = Beschreibung von Quicksort TU Bergakademie Freiberg, WS 2005/06

7 Algorithmen und Datenstrukturen 136 Beispiel für eine Ausführung von PARTITION: p r i = 01 j = Beschreibung von Quicksort TU Bergakademie Freiberg, WS 2005/06

8 Algorithmen und Datenstrukturen 136 Beispiel für eine Ausführung von PARTITION: p r i = 01 j = Beschreibung von Quicksort TU Bergakademie Freiberg, WS 2005/06

9 Algorithmen und Datenstrukturen 136 Beispiel für eine Ausführung von PARTITION: p r i = 01 j = Beschreibung von Quicksort TU Bergakademie Freiberg, WS 2005/06

10 Algorithmen und Datenstrukturen 136 Beispiel für eine Ausführung von PARTITION: p r i = 01 2 j = Beschreibung von Quicksort TU Bergakademie Freiberg, WS 2005/06

11 Algorithmen und Datenstrukturen 136 Beispiel für eine Ausführung von PARTITION: p r i = j = Beschreibung von Quicksort TU Bergakademie Freiberg, WS 2005/06

12 Algorithmen und Datenstrukturen 136 Beispiel für eine Ausführung von PARTITION: p r i = j = Beschreibung von Quicksort TU Bergakademie Freiberg, WS 2005/06

13 Algorithmen und Datenstrukturen 136 Beispiel für eine Ausführung von PARTITION: p r i = j = Beschreibung von Quicksort TU Bergakademie Freiberg, WS 2005/06

14 Algorithmen und Datenstrukturen 136 Beispiel für eine Ausführung von PARTITION: p r i = j = Beschreibung von Quicksort TU Bergakademie Freiberg, WS 2005/06

15 Algorithmen und Datenstrukturen 137 Bei der Ausführung des Algorithmus entstehen im Feld vier (möglicherweise leere) Teilbereiche. Drei davon besitzen Eigenschaften, die wir als Schleifeninvariante (SI) formulieren: SI: Zu Beginn der for -Schleife (Zeilen 3 6) gilt für jeden Feldindex k 1. Ist p k i, so gilt A[k] x. 2. Ist i + 1 k j 1, so gilt A[k] > x. 3. Ist k = r, so gilt A[k] = x. p i j r } {{ } x } {{ } >x } {{ } keine Einschränkung x 6.1 Beschreibung von Quicksort TU Bergakademie Freiberg, WS 2005/06

16 Algorithmen und Datenstrukturen 138 Nachweis der SI-Eigenschaften: Initialisierung: Vor dem ersten Schleifendurchlauf gelten i = p 1 und j = p. Damit liegen sowohl zwischen p und i als auch zwischen i + 1 und j 1 keine Indizes, sodass die ersten beiden Aussagen der SI trivialerweise erfüllt sind. Die dritte Aussage ist infolge der Zuweisung in Zeile 1 erfüllt. Erhaltung: 2 Fälle in Zeile 4: a) A[j] > x: nur j wird erhöht. Danach gilt wieder 2., alle anderen Einträge/Indizes unverändert. b) A[j] x: i wird erhöht, A[i] mit A[j] vertauscht, und j erhöht. Infolge des Vertauschens gilt 1. auch für den neuen Wert von i. Ebenso gilt nun A[j 1] > x, da dies für den dorthin getauschten Wert aufgrund der SI gilt. Terminierung: Beim Schleifenende gilt j = r, damit decken die drei Indexbereiche aus 1., 2., und 3. das gesamte Feld ab. 6.1 Beschreibung von Quicksort TU Bergakademie Freiberg, WS 2005/06

17 Algorithmen und Datenstrukturen 139 p i j r a) x p i j r x p i j r b) x p i j r x 6.1 Beschreibung von Quicksort TU Bergakademie Freiberg, WS 2005/06

18 Algorithmen und Datenstrukturen 140 Damit leistet der Algorithmus PARTITION das im Zerlegeschritt geforderte. Laufzeit von PARTITION angewandt auf A[p.. r] Θ(n), n = r p Beschreibung von Quicksort TU Bergakademie Freiberg, WS 2005/06

19 Algorithmen und Datenstrukturen Laufzeit von Quicksort Hängt davon ab, wie ausgeglichen die Zerlegungen sind. Bei ausgeglichenen Zerlegungen läuft Quicksort asymptotisch so schnell wie Merge-Sort. Sind die Zerlegungen extrem unausgeglichen, so kann Quicksort asymptotisch so langsam werden wie Insertion-Sort. Wir betrachten zum besseren Verständnis zunächst einige Spezialfälle. 6.2 Laufzeit von Quicksort TU Bergakademie Freiberg, WS 2005/06

20 Algorithmen und Datenstrukturen 142 Ungünstigster Fall Tritt auf, wenn Ergebnis von PARTITION ein Teilfeld der Länge n 1 und ein leeres Teilfeld. Annahme: dies trete bei jedem rekursiven Aufruf auf. Da die Partitionierung Θ(n) erfordert und da T (0) = Θ(1), erhalten wir T (n) = T (n 1) + T (0) + Θ(n) = T (n 1) + Θ(n). Lösung (z.b. Substitutionsmethode): T (n) = Θ(n 2 ). Beachte: ungünstigster Fall tritt auf bei bereits sortiertem Eingabefeld. In diesem Fall beträgt aber die Laufzeit von Insertion-Sort sogar nur O(n). 6.2 Laufzeit von Quicksort TU Bergakademie Freiberg, WS 2005/06

21 Algorithmen und Datenstrukturen 143 Günstigster Fall Tritt auf, wenn PARTITION stets zwei gleich große Teilfelder liefert, d.h. jedes Teilfeld n/2 Elemente besitzt. Ist dies bei jedem rekursiven Aufruf der Fall, so ergibt sich (z.b.) nach dem Master-Theorem. T (n) = 2T (n/2) + Θ(n) = Θ(n log n) 6.2 Laufzeit von Quicksort TU Bergakademie Freiberg, WS 2005/06

22 Algorithmen und Datenstrukturen 144 Beschränktes Verhältnis Die typische Laufzeit von Quicksort liegt dem günstigsten Fall näher als dem ungünstigsten. Annahme: nach jeder Zerlegung haben die Teilfelder das Längenverhältnis 9 : 1. Dies führt auf die Rekursion T (n) T (9n/10) + T (n/10) + cn, was zunächst recht unausgeglichen erscheint. Aber: Lösung ist T (n) = O(n log n). (Rekursionsbaum!) Dasselbe gilt auch für ein Verhältnis von 99 : 1, oder jedes beschränkte Längenverhältnis. 6.2 Laufzeit von Quicksort TU Bergakademie Freiberg, WS 2005/06

23 Algorithmen und Datenstrukturen 145 Abwechselnd günstige und ungünstige Zerlegung Da konstante Längenverhältnisse beim Zerlegen nicht zu erwarten sind, betrachten wir der Einsicht halber den Fall, dass abwechselnd günstigste und ungünstigste Zerlegungen auftreten. a) n b) Θ(n) n Θ(n) n 1 0 (n 1)/2 (n 1)/2 (n 1)/2 1 (n 1)/2 6.2 Laufzeit von Quicksort TU Bergakademie Freiberg, WS 2005/06

24 Algorithmen und Datenstrukturen 146 Fall a) produziert Felder der Längen 0, (n 1)/2 1 und (n 1)/2 mit Aufwand Θ(n) + Θ(n 1) = Θ(n). Fall b) produziert 2 Felder der Länge (n 1)/2 mit Aufwand Θ(n). Es verbleibt die gleiche Anzahl zu sortierender Teilfelder, im Fall a) waren hierzu lediglich zwei Rekursionen notwendig. In beiden Fällen erhalten wir asymptotischen Aufwand von O(n log n), im ersten Fall ist die Konstante jedoch größer. 6.2 Laufzeit von Quicksort TU Bergakademie Freiberg, WS 2005/06

25 Algorithmen und Datenstrukturen Eine randomisierte Variante von Quicksort bisherige Annahme: im Eingabefeld sind alle Permutationen gleich wahrscheinlich, dies ist nicht immer realistisch. Um dies auszugleichen nehmen wir eine Randomisierung a im Quicksort-Algorithmus vor. (Dies ist allgemein eine Technik, um bessere mittlere Laufzeiten zu erzielen) Eine Möglichkeit: Eingabefeld vor dem Sortieren zufällig permutieren. Hier: wir wählen anstelle von A[r] ein zufälliges Element von A als Trennschwelle. Dies soll im Mittel zu ausgeglichenen Zerlegungen führen. a Wir nennen einen Algorithmus randomisiert, falls dessen Verhalten neben den Eingabedaten auch von Zufallszahlen bestimmt wird. 6.3 Eine randomisierte Variante von Quicksort TU Bergakademie Freiberg, WS 2005/06

26 Algorithmen und Datenstrukturen 148 Einzige Änderung: vertausche vor jedem Zerlegen A[r] mit einem zufällig gewählten Feldelement: RANDOMIZED-PARTITION(A, p, r) 1 i RANDOM(p, r) 2 vertausche A[i] A[r] 3 return PARTITION(A, p, r) Hierbei liefere die Funktion RANDOM(a, b) gleichverteilte ganze Zufallszahlen im Intervall [a, b]. RANDOMIZED-QUICKSORT(A, p, r) 1 if p < r 2 then q RANDOMIZED-PARTITION(A, p, r) 3 RANDOMIZED-QUICKSORT(A, p, q 1) 4 RANDOMIZED-QUICKSORT(A, q + 1, r) 6.3 Eine randomisierte Variante von Quicksort TU Bergakademie Freiberg, WS 2005/06

27 Algorithmen und Datenstrukturen Analyse von Quicksort Nach den vorangehenden informellen Überlegungen, die eine intuitive Vorstellung vermittelten, warum Quicksort ein effizienter Sortieralgorithmus zu sein verspricht, soll im Folgenden eine exakte Analyse durchgeführt werden Worst-case Analyse Wir raten O(n 2 ) aufgrund vorangehender Überlegungen und wenden die Substitutionsmethode an. Rekursion für die Worst-case Laufzeit: ( ) T (n) = T (q) + T (n q 1) + Θ(n) max 0 q n 1 (maximale Laufzeit über alle Aufteilungen in Teilprobleme der Gesamtgröße n 1) 6.4 Analyse von Quicksort TU Bergakademie Freiberg, WS 2005/06

28 Algorithmen und Datenstrukturen 150 Ziel: zeige T (n) cn 2 für geeignete Konstante c. Einsetzen dieser Induktionsannahme liefert ( T (n) max cq 2 + c(n q 1) 2) + Θ(n) 0 q n 1 ( = c max q 2 + (n q 1) 2) + Θ(n). 0 q n 1 Die Funktion f(q) = q 2 + (n q 1) 2 nimmt ihr Maximum auf [0, n 1] am Rand an, d.h. f(q) f(0) = f(n 1) = (n 1) 2 = n 2 2n + 1. Somit ist T (n) cn 2 c(2n 1) + Θ(n) cn 2, sofern c hinreichend groß, dass c(2n 1) den Θ(n)-Term überwiegt. Damit ist T (n) = O(n 2 ) und, da wir bereits wissen, dass für sortierte Eingaben diese Laufzeit erreicht wird, somit auch T (n) = Θ(n 2 ). 6.4 Analyse von Quicksort TU Bergakademie Freiberg, WS 2005/06

29 Algorithmen und Datenstrukturen Mittlere Laufzeit Der überwiegende Anteil des Aufwandes entseht durch das Zerlegen. Bei jedem Aufruf von PARTITION wird das Element, das als Trennschwelle dient, von zukünftigen Aufrufen von PARTITION ausgeschlossen. Insbesondere wird PARTITION daher höchstens n man ausgeführt. Bezeichne mit X die Gesamtanzahl Vergleiche in allen Ausführungen von PARTITION im Zusammenhang mit dem Sortieren eines n-elementigen Eingabefeldes. 6.4 Analyse von Quicksort TU Bergakademie Freiberg, WS 2005/06

30 Algorithmen und Datenstrukturen 152 Lemma 6.1 Mit dieser Bezeichnung ist die Laufzeit von QUICKSORT O(n + X). Beweis: Neben einer konstanten Anzahl Operationen führt jeder der maximal n Aufrufe von PARTITION einige Male die for -Schleife aus. Bei jedem Durchlauf wird ein Vergleich durchgeführt. Ziel nun: obere Schranke für mittleren Wert von X. Hierzu bezeichnen wir die aufsteigend sortierten Elemente des Ausgangsfeldes A mit z 1, z 2,..., z n und mit Z ij := {z i, z i+1,..., z j } die Menge der Elemente zwischen z i und z j. In welchen Fällen vergleicht QUICKSORT zwei Elemente z i und z j? Beachte: Je zwei Elemente werden höchstens einmal verglichen, denn Vergleiche finden nur mit dem Trennschwellenelement statt, dieses wird aber von weiteren Aufrufen ausgeschlossen. 6.4 Analyse von Quicksort TU Bergakademie Freiberg, WS 2005/06

31 Algorithmen und Datenstrukturen 153 Sei X i,j die Indikatorvariable des Ereignisses z i wird mit z j verglichen, d.h. { 1 falls zi mit z j verglichen wird, X i,j = 0 sonst. Da zwei Elemente höchstens einmal verglichen werden, folgt X = n 1 i=1 n j=i+1 X i,j. 6.4 Analyse von Quicksort TU Bergakademie Freiberg, WS 2005/06

32 Algorithmen und Datenstrukturen 154 Bezeichnen E[X] den Erwartungswert von X und Pr{A} die Wahrscheinlichkeit eines Ereignisses A, so folgt n 1 E[X] = E n = = n 1 i=1 n 1 i=1 i=1 n j=i+1 n j=i+1 j=i+1 X i,j E[X i,j ] Pr{z i wird mit z j verglichen} Es verbleibt also die Bestimmung von Pr{z i wird mit z j verglichen}. 6.4 Analyse von Quicksort TU Bergakademie Freiberg, WS 2005/06

33 Algorithmen und Datenstrukturen 155 Hilfsüberlegung: wann werden zwei Elemente nicht verglichen?// Beispiel: Eingabefeld A = 1, 2,..., 10, sei 7 das erste Trennschwellenelement. Nach erster Ausführung von PARTITION Zerlegung in 1, 2, 3, 4, 5, 6 und 8, 9, 10. Dabei wird 7 mit allen Elementen verglichen, aber kein Element der ersten Menge wird bei diesem und allen späteren Ausführungen von PARTITION mit einem Element der zweiten Menge verglichen. 6.4 Analyse von Quicksort TU Bergakademie Freiberg, WS 2005/06

34 Algorithmen und Datenstrukturen 156 Allgemein: sobald ein Element x mit z i < x < z j als Trennschwelle gewählt wird, steht fest, das im weiteren Verlauf z i und z j nicht verglichen werden. Umgekehrt: wird z i von allen Elementen aus Z ij zuerst als Trennschwelle gewählt, so wird z i mit allen Elementen aus Z i,j (außer z i selbst) verglichen, und analog für z j. Im obigen Beispiel werden 7 und 9 verglichen, da 7 als erstes Element in Z 7,9 als Trennschwelle gewählt wird. Dagegen werden 2 und 9 nie verglichen, da aus Z 2,9 das Element 7 als zuerst als Trennschwelle gewählt wurde. Fazit: Genau dann kommt es zu einem Vergleich zwischen z i und z j, wenn das erste Element aus Z i,j, das als Trennschwelle gewählt wird, entweder z i oder z j ist. 6.4 Analyse von Quicksort TU Bergakademie Freiberg, WS 2005/06

35 Algorithmen und Datenstrukturen 157 Vor der Wahl einer Trennschwelle aus Z i,j liegen alle Elemente dieser Menge im selben Teilfeld. Daher ist die Wahrscheinlichkeit, als Trennschwelle ausgewählt zu werden, für alle Elemente gleich. Da Z i,j genau j i + 1 Elemente enthält, folgt Pr{z i wird mit z j verglichen} = Pr{z i oder z j zuerst als Trennschwelle aus Z i,j gewählt} = Pr{z i aus Z i,j zuerst gewählt} + Pr{z j aus Z i,j zuerst gewählt} = = 1 j i j i j i Analyse von Quicksort TU Bergakademie Freiberg, WS 2005/06

36 Algorithmen und Datenstrukturen 158 Insgesamt also E[X] = < n 1 i=1 n 1 i=1 n j=i+1 n k=1 n 1 2 j i + 1 = n 1 2 k = i=1 i=1 n i k=1 2 k + 1 O(log n) = O(n log n). (Hierbei benutzt: n k=1 1 k = log n + O(1).) Damit ist gezeigt: die mittlere Laufzeit von Quicksort unter Verwendung von RANDOMIZED-PARTITION beträgt O(n log n). 6.4 Analyse von Quicksort TU Bergakademie Freiberg, WS 2005/06

Algorithmen und Datenstrukturen Heapsort

Algorithmen und Datenstrukturen Heapsort Algorithmen und Datenstrukturen 2 5 Heapsort In diesem Kapitel wird Heapsort, ein weiterer Sortieralgorithmus, vorgestellt. Dieser besitzt wie MERGE-SORT eine Laufzeit von O(n log n), sortiert jedoch das

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Große Übung #6 Phillip Keldenich, Arne Schmidt 26.02.2017 Heute: Master-Theorem Phillip Keldenich, Arne Schmidt Große Übung 2 Vorbetrachtungen Wir betrachten rekursive Gleichungen

Mehr

Kapitel 6 Elementare Sortieralgorithmen

Kapitel 6 Elementare Sortieralgorithmen Kapitel 6 Elementare Sortieralgorithmen Ziel: Kennenlernen elementarer Sortierverfahren und deren Effizienz Zur Erinnerung: Das Sortier-Problem Gegeben: Folge A von n Elementen a 1, a 2,..., a n ; Eine

Mehr

4 Probabilistische Analyse und randomisierte Algorithmen

4 Probabilistische Analyse und randomisierte Algorithmen Algorithmen und Datenstrukturen 96 4 Probabilistische Analyse und randomisierte Algorithmen Bei der Algorithmenanalyse ist es sehr hilfreich, Aspekte berücksichtigen zu können, die vom Zufall abhängen.

Mehr

Datenstrukturen & Algorithmen

Datenstrukturen & Algorithmen Datenstrukturen & Algorithmen Matthias Zwicker Universität Bern Frühling 2010 Übersicht Sortieralgorithmen Einleitung Heapsort Quicksort 2 Motivation Sortieren ist Voraussetzung für viele Anwendungen Nach

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen 1 Algorithmen und Datenstrukturen Wintersemester 017/18 8. Vorlesung Sortieren mit dem Würfel! Prof. Dr. Alexander Wolff Lehrstuhl für Informatik I - 5 Guten Morgen! Tipps für unseren ersten Test am Do,

Mehr

QuickSort ist ein Sortieralgorithmus, der auf der Idee des Teile & Beherrsche beruht, und das gegebene Array an Ort und Stelle (in place) sortiert

QuickSort ist ein Sortieralgorithmus, der auf der Idee des Teile & Beherrsche beruht, und das gegebene Array an Ort und Stelle (in place) sortiert 4.3.6 QuickSort QuickSort ist ein Sortieralgorithmus, der auf der Idee des Teile & Beherrsche beruht, und das gegebene Array an Ort und Stelle (in place) sortiert QuickSort teilt das gegebene Array anhand

Mehr

Sortieralgorithmen. Jan Pöschko. 18. Januar Problemstellung Definition Warum Sortieren?... 2

Sortieralgorithmen. Jan Pöschko. 18. Januar Problemstellung Definition Warum Sortieren?... 2 Jan Pöschko 18. Januar 2007 Inhaltsverzeichnis 1 Problemstellung 2 1.1 Definition................................... 2 1.2 Warum Sortieren?.............................. 2 2 Einfache Sortieralgorithmen

Mehr

Rekursionsbäume Aufstellen eines Baumes dessen Knoten die Laufzeit auf jeder Rekursionsstufe darstellen und Aufsummieren

Rekursionsbäume Aufstellen eines Baumes dessen Knoten die Laufzeit auf jeder Rekursionsstufe darstellen und Aufsummieren Algorithmen und Datenstrukturen 74 3 Rekursionen Vor allem bei rekursiven Algorithmen besitzt die Laufzeitfunktion eine naheliegende rekursive Formulierung, d.h. die Laufzeitfunktion ist konstant für den

Mehr

Übung zu Algorithmen und Datenstrukturen (für ET/IT)

Übung zu Algorithmen und Datenstrukturen (für ET/IT) Übung zu Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 2017 Rüdiger Göbl, Mai Bui Computer Aided Medical Procedures Technische Universität München Fibonacci Zahlen Fibonacci Folge Die Fibonacci

Mehr

14. Sortieren II Heapsort. Heapsort. [Max-]Heap 7. Heapsort, Quicksort, Mergesort. Binärer Baum mit folgenden Eigenschaften

14. Sortieren II Heapsort. Heapsort. [Max-]Heap 7. Heapsort, Quicksort, Mergesort. Binärer Baum mit folgenden Eigenschaften Heapsort, Quicksort, Mergesort 14. Sortieren II 14.1 Heapsort [Ottman/Widmayer, Kap. 2.3, Cormen et al, Kap. 6] 397 398 Heapsort [Max-]Heap 7 Inspiration von Selectsort: Schnelles Einfügen Binärer Baum

Mehr

1 Raumwechsel: Gr. 15 (Do 10-12, F-235) ab sofort in G Studie zum Arbeitsverhalten von Studierenden unter Leitung

1 Raumwechsel: Gr. 15 (Do 10-12, F-235) ab sofort in G Studie zum Arbeitsverhalten von Studierenden unter Leitung Organisatorisches Algorithmen und Datenstrukturen Kapitel 3: Divide & Conquer Frank Heitmann heitmann@informatik.uni-hamburg.de 1 Raumwechsel: Gr. 15 (Do 10-12, F-235) ab sofort in G-021. 2 Studie zum

Mehr

Das Suchproblem. Gegeben Menge von Datensätzen. Beispiele Telefonverzeichnis, Wörterbuch, Symboltabelle

Das Suchproblem. Gegeben Menge von Datensätzen. Beispiele Telefonverzeichnis, Wörterbuch, Symboltabelle 122 4. Suchen Lineare Suche, Binäre Suche, Interpolationssuche, Untere Schranken [Ottman/Widmayer, Kap. 3.2, Cormen et al, Kap. 2: Problems 2.1-3,2.2-3,2.3-5] 123 Das Suchproblem Gegeben Menge von Datensätzen.

Mehr

Grundlagen: Algorithmen und Datenstrukturen

Grundlagen: Algorithmen und Datenstrukturen Grundlagen: Algorithmen und Datenstrukturen Prof. Dr. Hanjo Täubig Lehrstuhl für Effiziente Algorithmen (Prof. Dr. Ernst W. Mayr) Institut für Informatik Technische Universität München Sommersemester 2010

Mehr

Übung zu Algorithmen und Datenstrukturen (für ET/IT)

Übung zu Algorithmen und Datenstrukturen (für ET/IT) Übung zu Algorithmen und Datenstrukturen (für ET/IT) Wintersemester 2012/13 Jakob Vogel Computer-Aided Medical Procedures Technische Universität München Komplexität von Programmen Laufzeit kann näherungsweise

Mehr

Das Suchproblem 4. Suchen Das Auswahlproblem Suche in Array

Das Suchproblem 4. Suchen Das Auswahlproblem Suche in Array Das Suchproblem Gegeben. Suchen Lineare Suche, Binäre Suche, Interpolationssuche, Untere Schranken [Ottman/Widmayer, Kap. 3.2, Cormen et al, Kap. 2: Problems 2.-3,2.2-3,2.3-] Menge von Datensätzen. Beispiele

Mehr

8. Sortieren II. 8.1 Heapsort. Heapsort. [Max-]Heap 6. Heapsort, Quicksort, Mergesort. Binärer Baum mit folgenden Eigenschaften

8. Sortieren II. 8.1 Heapsort. Heapsort. [Max-]Heap 6. Heapsort, Quicksort, Mergesort. Binärer Baum mit folgenden Eigenschaften Heapsort, Quicksort, Mergesort 8. Sortieren II 8.1 Heapsort [Ottman/Widmayer, Kap. 2.3, Cormen et al, Kap. 6] 9 210 Heapsort [Max-]Heap 6 Inspiration von Selectsort: Schnelles Einfügen Binärer Baum mit

Mehr

Heapsort, Quicksort, Mergesort. 8. Sortieren II

Heapsort, Quicksort, Mergesort. 8. Sortieren II 209 Heapsort, Quicksort, Mergesort 8. Sortieren II 210 8.1 Heapsort [Ottman/Widmayer, Kap. 2.3, Cormen et al, Kap. 6] 211 Heapsort Inspiration von Selectsort: Schnelles Einfügen Inspiration von Insertionsort:

Mehr

Heapsort, Quicksort, Mergesort. 8. Sortieren II

Heapsort, Quicksort, Mergesort. 8. Sortieren II 209 Heapsort, Quicksort, Mergesort 8. Sortieren II 210 8.1 Heapsort [Ottman/Widmayer, Kap. 2.3, Cormen et al, Kap. 6] Heapsort 211 Inspiration von Selectsort: Schnelles Einfügen Inspiration von Insertionsort:

Mehr

Übersicht. Datenstrukturen und Algorithmen. Divide-and-Conquer. Übersicht. Vorlesung 9: Quicksort (K7)

Übersicht. Datenstrukturen und Algorithmen. Divide-and-Conquer. Übersicht. Vorlesung 9: Quicksort (K7) Datenstrukturen und Algorithmen Vorlesung 9: (K7) Joost-Pieter Katoen Algorithmus Lehrstuhl für Informatik 2 Software Modeling and Verification Group http://moves.rwth-aachen.de/teaching/ss-5/dsal/ 2 7.

Mehr

Das Suchproblem. Gegeben Menge von Datensätzen. Beispiele Telefonverzeichnis, Wörterbuch, Symboltabelle

Das Suchproblem. Gegeben Menge von Datensätzen. Beispiele Telefonverzeichnis, Wörterbuch, Symboltabelle 119 4. Suchen Lineare Suche, Binäre Suche, Interpolationssuche, Exponentielle Suche, Untere Schranken [Ottman/Widmayer, Kap. 3.2, Cormen et al, Kap. 2: Problems 2.1-3,2.2-3,2.3-5] 120 Das Suchproblem Gegeben

Mehr

Das Suchproblem 4. Suchen Das Auswahlproblem Suche in Array

Das Suchproblem 4. Suchen Das Auswahlproblem Suche in Array Das Suchproblem Gegeben. Suchen Lineare Suche, Binäre Suche, Interpolationssuche, Exponentielle Suche, Untere Schranken [Ottman/Widmayer, Kap. 3.2, Cormen et al, Kap. 2: Problems 2.-3,2.2-3,2.3-] Menge

Mehr

Übung Algorithmen und Datenstrukturen

Übung Algorithmen und Datenstrukturen Übung Algorithmen und Datenstrukturen Sommersemester 017 Marc Bux, Humboldt-Universität zu Berlin Agenda 1. Vorrechnen von Aufgabenblatt 1. Wohlgeformte Klammerausdrücke 3. Teile und Herrsche Agenda 1.

Mehr

Vorlesung Datenstrukturen

Vorlesung Datenstrukturen Vorlesung Datenstrukturen Weitere Grundlagen Maike Buchin 20.4.2017 Wiederholung wir interessieren uns für effizienten Algorithmen und Datenstrukturen Laufzeiten messen wir asymptotisch in der Oh-Notation

Mehr

Kap. 3: Sortieren (3)

Kap. 3: Sortieren (3) Kap. 3: Sortieren (3) Professor Dr. Lehrstuhl für Algorithm Engineering, LS Fakultät für Informatik, TU Dortmund 6. VO DAP2 SS 2009 30. April 2009 Überblick Quick-Sort Analyse von Quick-Sort Quick-Sort

Mehr

Abschnitt: Algorithmendesign und Laufzeitanalyse

Abschnitt: Algorithmendesign und Laufzeitanalyse Abschnitt: Algorithmendesign und Laufzeitanalyse Definition Divide-and-Conquer Paradigma Divide-and-Conquer Algorithmen verwenden die Strategien 1 Divide: Teile das Problem rekursiv in Subproblem gleicher

Mehr

Informatik II, SS 2018

Informatik II, SS 2018 Informatik II - SS 2018 (Algorithmen & Datenstrukturen) Vorlesung 4 (30.4.2018) Sortieren IV Algorithmen und Komplexität Analyse Merge Sort Laufzeit T(n) setzt sich zusammen aus: Divide und Merge: O n

Mehr

Formaler. Gegeben: Elementfolge s = e 1,...,e n. s ist Permutation von s e 1 e n für eine lineare Ordnung ` '

Formaler. Gegeben: Elementfolge s = e 1,...,e n. s ist Permutation von s e 1 e n für eine lineare Ordnung ` ' Sortieren & Co 164 165 Formaler Gegeben: Elementfolge s = e 1,...,e n Gesucht: s = e 1,...,e n mit s ist Permutation von s e 1 e n für eine lineare Ordnung ` ' 166 Anwendungsbeispiele Allgemein: Vorverarbeitung

Mehr

Heapsort. Dr. Michael Brinkmeier (TU Ilmenau) Algorithmen und Datenstrukturen / 50

Heapsort. Dr. Michael Brinkmeier (TU Ilmenau) Algorithmen und Datenstrukturen / 50 Heapsort Dr. Michael Brinkmeier (TU Ilmenau) Algorithmen und Datenstrukturen 27.6.2007 / 50 Heapsort - Wiederholung Definition Array A[..n] mit Einträgen aus (U,

Mehr

8. A & D - Heapsort. Werden sehen, wie wir durch geschicktes Organsieren von Daten effiziente Algorithmen entwerfen können.

8. A & D - Heapsort. Werden sehen, wie wir durch geschicktes Organsieren von Daten effiziente Algorithmen entwerfen können. 8. A & D - Heapsort Werden sehen, wie wir durch geschicktes Organsieren von Daten effiziente Algorithmen entwerfen können. Genauer werden wir immer wieder benötigte Operationen durch Datenstrukturen unterstützen.

Mehr

Kapitel 2. Weitere Beispiele Effizienter Algorithmen

Kapitel 2. Weitere Beispiele Effizienter Algorithmen Kapitel 2 Weitere Beispiele Effizienter Algorithmen Sequentielle Suche Gegeben: Array a[1..n] Suche in a nach Element x Ohne weitere Zusatzinformationen: Sequentielle Suche a[1] a[2] a[3] Laufzeit: n Schritte

Mehr

8.1.3 Operation Build-Max-Heap Operation zur Konstruktion eines Heaps Eingabe: Feld A[1..n], n = länge(a) BUILD-MAX-HEAP (A)

8.1.3 Operation Build-Max-Heap Operation zur Konstruktion eines Heaps Eingabe: Feld A[1..n], n = länge(a) BUILD-MAX-HEAP (A) Stand der Vorlesung: Datenstruktur Heap: fast vollständiger Binärbaum MaxHeap: sortierter Heap, größtes Element an Wurzel Sortierverfahren: HeapSort: Sortieren eines Feldes A[1.. n] Idee: in place: Feld

Mehr

Technische Universität München

Technische Universität München Stand der Vorlesung: Datenstruktur Heap: fast vollständiger Binärbaum MaxHeap: sortierter Heap, größtes Element an Wurzel Sortierverfahren: HeapSort: Sortieren eines Feldes A[1.. n] Idee: in place: Feld

Mehr

Aufgabe 8. 1 Arbeitsweise illustrieren. 2 Korrektheitsbeweis führen. 3 Laufzeitanalyse durchführen.

Aufgabe 8. 1 Arbeitsweise illustrieren. 2 Korrektheitsbeweis führen. 3 Laufzeitanalyse durchführen. Aufgabe 8 Betrachten Sie den folgenden Algorithmus namens Bubble-Sort. Bubble-Sort(A[1..n]): 1 for i 1 to length(a) 1 2 do for j length(a) downto i + 1 3 do if A[j 1] > A[j] 4 then A[j 1] A[j] 1 Arbeitsweise

Mehr

Datenstrukturen & Algorithmen

Datenstrukturen & Algorithmen Datenstrukturen & Algorithmen Matthias Zwicker Universität Bern Frühling 2010 Übersicht Untere Schranken für Sortieren Sortieren mit linearem Aufwand Mediane und Ranggrössen 2 Wie schnell können wir sortieren?

Mehr

3. Suchen. Das Suchproblem. Suche in Array. Lineare Suche. 1 n. i = n Gegeben Menge von Datensätzen.

3. Suchen. Das Suchproblem. Suche in Array. Lineare Suche. 1 n. i = n Gegeben Menge von Datensätzen. Das Suchproblem Gegeben Menge von Datensätzen. 3. Suchen Beispiele Telefonverzeichnis, Wörterbuch, Symboltabelle Jeder Datensatz hat einen Schlüssel k. Schlüssel sind vergleichbar: eindeutige Antwort auf

Mehr

2. Grundlagen. Beschreibung von Algorithmen durch Pseudocode. Korrektheit von Algorithmen durch Invarianten.

2. Grundlagen. Beschreibung von Algorithmen durch Pseudocode. Korrektheit von Algorithmen durch Invarianten. 2. Grundlagen Beschreibung von Algorithmen durch Pseudocode. Korrektheit von Algorithmen durch Invarianten. Laufzeitverhalten beschreiben durch O-Notation. 1 Beispiel Minimum-Suche Eingabe bei Minimum

Mehr

2 Wachstumsverhalten von Funktionen

2 Wachstumsverhalten von Funktionen Algorithmen und Datenstrukturen 40 2 Wachstumsverhalten von Funktionen Beim Vergleich der Worst-Case-Laufzeiten von Algorithmen in Abhängigkeit von der Größe n der Eingabedaten ist oft nur deren Verhalten

Mehr

A7.1 Untere Schranke. Algorithmen und Datenstrukturen. A7.1 Untere Schranke. Algorithmen und Datenstrukturen. A7.2 Quicksort. A7.

A7.1 Untere Schranke. Algorithmen und Datenstrukturen. A7.1 Untere Schranke. Algorithmen und Datenstrukturen. A7.2 Quicksort. A7. Algorithmen und Datenstrukturen 14. März 2018 A7. III Algorithmen und Datenstrukturen A7. III Marcel Lüthi and Gabriele Röger Universität Basel 14. März 2018 A7.1 Untere Schranke A7.2 Quicksort A7.3 Heapsort

Mehr

Praktikum Algorithmische Anwendungen WS 2006/07 Sortieren in linearer Laufzeit

Praktikum Algorithmische Anwendungen WS 2006/07 Sortieren in linearer Laufzeit Praktikum Algorithmische Anwendungen WS 2006/07 Sortieren in linearer Laufzeit Team A blau Martin Herfurth 11043831 Markus Wagner 11043447 5. Februar 2007 1 1 Untere Schranke für Vergleichsbasierte Algorithmen

Mehr

Alle bislang betrachteten Sortieralgorithmen hatten (worst-case) Laufzeit Ω(nlog(n)).

Alle bislang betrachteten Sortieralgorithmen hatten (worst-case) Laufzeit Ω(nlog(n)). 8. Untere Schranken für Sortieren Alle bislang betrachteten Sortieralgorithmen hatten (worst-case) Laufzeit Ω(nlog(n)). Werden nun gemeinsame Eigenschaften dieser Algorithmen untersuchen. Fassen gemeinsame

Mehr

1. Musterlösung. Problem 1: Average-case-Laufzeit vs. Worst-case-Laufzeit ** i=1

1. Musterlösung. Problem 1: Average-case-Laufzeit vs. Worst-case-Laufzeit ** i=1 Universität Karlsruhe Algorithmentechnik Fakultät für Informatik WS 05/06 ITI Wagner. Musterlösung Problem : Average-case-Laufzeit vs. Worst-case-Laufzeit ** (a) Im schlimmsten Fall werden für jedes Element

Mehr

Übung Algorithmen I

Übung Algorithmen I Übung Algorithmen I 20.5.15 Christoph Striecks Christoph.Striecks@kit.edu (Mit Folien von Julian Arz, Timo Bingmann und Sebastian Schlag.) Roadmap Organisation Mergesort, Quicksort Dual Pivot Quicksort

Mehr

Asymptotische Laufzeitanalyse: Beispiel

Asymptotische Laufzeitanalyse: Beispiel Asyptotische Laufzeitanalyse: n = length( A ) A[j] = x GZ Algorithen u. Datenstrukturen 1 31.10.2013 Asyptotische Laufzeitanalyse: n = length( A ) A[j] = x GZ Algorithen u. Datenstrukturen 2 31.10.2013

Mehr

1.3 Erinnerung: Mergesort

1.3 Erinnerung: Mergesort Mergesort 1.3 Erinnerung: Mergesort Um n Zahlen/Objekte a 1,..., a n zu sortieren, geht der Mergesort-Algorithmus so vor: Falls n n 0 : Sortiere mit einem naiven Algorithmus (z. B. Insertion Sort). Sonst:

Mehr

Kapitel 8 Fortgeschrittene Sortieralgorithmen

Kapitel 8 Fortgeschrittene Sortieralgorithmen Kapitel 8 Fortgeschrittene Sortieralgorithmen Zur Erinnerung: in Kapitel 6 Elementare Sortierverfahren Sortierverfahren, die auf Vergleichen von Werten basieren. Aufwand zum Sortieren von Feldern von n

Mehr

Algorithmen I. Prof. Jörn Müller-Quade Institut für Theoretische Informatik Web:

Algorithmen I. Prof. Jörn Müller-Quade Institut für Theoretische Informatik Web: Algorithmen I Prof. Jörn Müller-Quade 24.05.2017 Institut für Theoretische Informatik Web: https://crypto.iti.kit.edu/index.php?id=799 (Folien von Peter Sanders) KIT Institut für Theoretische Informatik

Mehr

Algorithmen und Datenstrukturen 1. 1 Einleitung

Algorithmen und Datenstrukturen 1. 1 Einleitung Algorithmen und Datenstrukturen 1 1 Einleitung Im ersten Kapitel soll auf informeller Ebene anhand eines einfachen Beispiels der Begriff des Algorithmus sowie verschiedene Aspekte der Algorithmenanalyse

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen A7. Sortieren III Marcel Lüthi and Gabriele Röger Universität Basel 14. März 2018 Untere Schranke Sortierverfahren Sortieren Vergleichsbasierte Verfahren Nicht vergleichsbasierte

Mehr

Randomisierte Algorithmen 2. Erste Beispiele

Randomisierte Algorithmen 2. Erste Beispiele Randomisierte Algorithmen Randomisierte Algorithmen 2. Erste Beispiele Thomas Worsch Fakultät für Informatik Karlsruher Institut für Technologie Wintersemester 2016/2017 1 / 35 Randomisierter Identitätstest

Mehr

Quicksort ist ein Divide-and-Conquer-Verfahren.

Quicksort ist ein Divide-and-Conquer-Verfahren. . Quicksort Wie bei vielen anderen Sortierverfahren (Bubblesort, Mergesort, usw.) ist auch bei Quicksort die Aufgabe, die Elemente eines Array a[..n] zu sortieren. Quicksort ist ein Divide-and-Conquer-Verfahren.

Mehr

Datenstrukturen und Algorithmen Beispiellösung zu Heimübungsblatt 7. Abbildung 1: Das Array A als Baum (vgl. Foliensatz 16, Folie 3)

Datenstrukturen und Algorithmen Beispiellösung zu Heimübungsblatt 7. Abbildung 1: Das Array A als Baum (vgl. Foliensatz 16, Folie 3) Aufgabe 3 a) Wir verwenden zur Lösung den Algorithmus Build-Heap 1, dieser verwendet die Funktion Heapify. Unser Array A ist gegeben durch [7, 10,, 5, 5,, 3, 3, 17]. 10 5 5 3 17 7 Abbildung 1: Das Array

Mehr

Wiederholung. Divide & Conquer Strategie

Wiederholung. Divide & Conquer Strategie Wiederholung Divide & Conquer Strategie Binäre Suche O(log n) Rekursives Suchen im linken oder rechten Teilintervall Insertion-Sort O(n 2 ) Rekursives Sortieren von a[1..n-1], a[n] Einfügen von a[n] in

Mehr

Informatik II, SS 2018

Informatik II, SS 2018 Informatik II - SS 2018 (Algorithmen & Datenstrukturen) Vorlesung 2 (23.4.2018) Sortieren II, Asymptotische Analyse, O-Notation Algorithmen und Komplexität Laufzeit Zeitmessung SelectionSort n 2 Laufzeit/n

Mehr

JAVA - Suchen - Sortieren

JAVA - Suchen - Sortieren Übungen Informatik I JAVA - Suchen - Sortieren http://www.fbi-lkt.fh-karlsruhe.de/lab/info01/tutorial Übungen Informatik 1 Folie 1 Inhalt Suchen/Sortieren binary search mergesort bubblesort Übungen Informatik

Mehr

Informatik II, SS 2016

Informatik II, SS 2016 Informatik II - SS 2014 (Algorithmen & Datenstrukturen) Vorlesung 2 (22.4.2016) Sortieren II Algorithmen und Komplexität SelectionSort: Programm Schreiben wir doch das gleich mal als Java/C++ - Programm

Mehr

9. Rekursion. 1 falls n 1 n (n 1)!, andernfalls. Experiment: Die Türme von Hanoi. Links Mitte Rechts. Mathematische Rekursion

9. Rekursion. 1 falls n 1 n (n 1)!, andernfalls. Experiment: Die Türme von Hanoi. Links Mitte Rechts. Mathematische Rekursion Experiment: Die Türme von Hanoi. Rekursion Mathematische Rekursion, Terminierung, der Aufrufstapel, Beispiele, Rekursion vs. Iteration Links Mitte Rechts Mathematische Rekursion Viele mathematische Funktionen

Mehr

2.2 Allgemeine (vergleichsbasierte) Sortierverfahren

2.2 Allgemeine (vergleichsbasierte) Sortierverfahren . Allgemeine (vergleichsbasierte) Sortierverfahren Vergleichsbaum: Der Aufbau des Verbleichsbaum ist für jeden Algorithmus und jede Eingabelänge n gleich. Jede Permutation der Eingabe, muss zu einem anderen

Mehr

Übung Datenstrukturen. Sortieren

Übung Datenstrukturen. Sortieren Übung Datenstrukturen Sortieren Aufgabe 1 Gegeben sei nebenstehender Sortieralgorithmus für ein Feld a[] ganzer Zahlen mit N Elementen: a) Um welches Sortierverfahren handelt es sich? b) Geben Sie möglichst

Mehr

Interne Sortierverfahren

Interne Sortierverfahren Angewandte Datentechnik Interne Sortierverfahren Interne Sortierverfahren Ausarbeitung einer Maturafrage aus dem Fach A n g e w a n d t e D a t e n t e c h n i k Andreas Hechenblaickner 5CDH HTBLA Kaindorf/Sulm

Mehr

Sortieren & Co. KIT Institut für Theoretische Informatik

Sortieren & Co. KIT Institut für Theoretische Informatik Sortieren & Co KIT Institut für Theoretische Informatik 1 Formaler Gegeben: Elementfolge s = e 1,...,e n Gesucht: s = e 1,...,e n mit s ist Permutation von s e e 1 n für eine Totalordnung ` ' KIT Institut

Mehr

Bucketsort. Korrektheit. Beispiel. Eingabe: Array A mit n Elementen im Bereich [0,1) Annahme: die Elemente sind in [0,1) gleichverteilt.

Bucketsort. Korrektheit. Beispiel. Eingabe: Array A mit n Elementen im Bereich [0,1) Annahme: die Elemente sind in [0,1) gleichverteilt. Bucketsort Beispiel Eingabe: Array A mit n Elementen im Bereich [0,1) Annahme: die Elemente sind in [0,1) gleichverteilt 1 2 A.78.17 0 1 B.12.17 Sonst: Skalieren ( Aufwand O(n) ) 3.39 2.21.23.26 Idee:

Mehr

Eingabe: Array A mit n Elementen im Bereich [0,1) Annahme: die Elemente sind in [0,1) gleichverteilt

Eingabe: Array A mit n Elementen im Bereich [0,1) Annahme: die Elemente sind in [0,1) gleichverteilt Bucketsort Eingabe: Array A mit n Elementen im Bereich [0,1) Annahme: die Elemente sind in [0,1) gleichverteilt Sonst: Skalieren ( Aufwand O(n) ) Idee: Teile [0, 1) in n gleich große Buckets - Oder: n/k

Mehr

Heapsort / 1 A[1] A[2] A[3] A[4] A[5] A[6] A[7] A[8]

Heapsort / 1 A[1] A[2] A[3] A[4] A[5] A[6] A[7] A[8] Heapsort / 1 Heap: Ein Array heißt Heap, falls A [i] A [2i] und A[i] A [2i + 1] (für 2i n bzw. 2i + 1 n) gilt. Beispiel: A[1] A[2] A[3] A[4] A[5] A[6] A[7] A[8] Heapsort / 2 Darstellung eines Heaps als

Mehr

Algorithmen und Datenstrukturen 1 VL Übungstest WS November 2008

Algorithmen und Datenstrukturen 1 VL Übungstest WS November 2008 Technische Universität Wien Institut für Computergraphik und Algorithmen Arbeitsbereich für Algorithmen und Datenstrukturen 186.172 Algorithmen und Datenstrukturen 1 VL 4.0 1. Übungstest WS 2008 07. November

Mehr

Studentisches Skript

Studentisches Skript Algorithmen und Datenstrukturen Studentisches Skript Kim Wittenburg 5wittenb@informatik.uni-hamburg.de Version vom 20. März 2017 Auf Basis der Vorlesung von Prof. Dr. Petra Berenbrink und Prof. Dr. Chris

Mehr

Datenstrukturen und Algorithmen. Christian Sohler FG Algorithmen & Komplexität

Datenstrukturen und Algorithmen. Christian Sohler FG Algorithmen & Komplexität Datenstrukturen und Algorithmen Christian Sohler FG Algorithmen & Komplexität 1 Geometrisches Problem: Problem: Nächstes Paar Eingabe: n Punkte in der Ebene Ausgabe: Das Paar q,r mit geringstem Abstand

Mehr

Algorithmentheorie Randomisierung

Algorithmentheorie Randomisierung Algorithmentheorie 03 - Randomisierung Prof. Dr. S. Albers Randomisierung Klassen von randomisierten Algorithmen Randomisierter Quicksort Randomisierter Primzahltest Kryptographie 2 1. Klassen von randomisierten

Mehr

Algorithmen und Datenstrukturen SoSe 2008 in Trier. Henning Fernau Universität Trier

Algorithmen und Datenstrukturen SoSe 2008 in Trier. Henning Fernau Universität Trier Algorithmen und Datenstrukturen SoSe 2008 in Trier Henning Fernau Universität Trier fernau@uni-trier.de 1 Algorithmen und Datenstrukturen Gesamtübersicht Organisatorisches / Einführung Grundlagen: RAM,

Mehr

Algorithmen und Komplexität Teil 1: Grundlegende Algorithmen

Algorithmen und Komplexität Teil 1: Grundlegende Algorithmen Algorithmen und Komplexität Teil 1: Grundlegende Algorithmen WS 08/09 Friedhelm Meyer auf der Heide Vorlesung 11, 18.11.08 Friedhelm Meyer auf der Heide 1 Randomisierte Algorithmen Friedhelm Meyer auf

Mehr

3.2. Divide-and-Conquer-Methoden

3.2. Divide-and-Conquer-Methoden LUDWIG- MAXIMILIANS- UNIVERSITY MUNICH DEPARTMENT INSTITUTE FOR INFORMATICS DATABASE 3.2. Divide-and-Conquer-Methoden Divide-and-Conquer-Methoden Einfache Sortieralgorithmen reduzieren die Größe des noch

Mehr

Algorithmentheorie Randomisierung. Robert Elsässer

Algorithmentheorie Randomisierung. Robert Elsässer Algorithmentheorie 03 - Randomisierung Robert Elsässer Randomisierung Klassen von randomisierten Algorithmen Randomisierter Quicksort Randomisierter Primzahltest Kryptographie 2 1. Klassen von randomisierten

Mehr

Divide & Conquer. Problem in Teilprobleme aufteilen Teilprobleme rekursiv lösen Lösung aus Teillösungen zusammensetzen

Divide & Conquer. Problem in Teilprobleme aufteilen Teilprobleme rekursiv lösen Lösung aus Teillösungen zusammensetzen Teile & Herrsche: Divide & Conquer Problem in Teilprobleme aufteilen Teilprobleme rekursiv lösen Lösung aus Teillösungen zusammensetzen Probleme: Wie setzt man zusammen? [erfordert algorithmisches Geschick

Mehr

Übungen zu Algorithmentechnik WS 09/10

Übungen zu Algorithmentechnik WS 09/10 Übungen zu Algorithmentechnik WS 09/10 1. Kurzsitzung Thomas Pajor 22. Oktober 2009 1/ 25 Eure Übungsleiter Tanja Hartmann t.hartmann@kit.edu Raum 306, Gebäude 50.34 Thomas Pajor pajor@kit.edu Raum 322,

Mehr

Suchen und Sortieren Sortieren. Mergesort

Suchen und Sortieren Sortieren. Mergesort Suchen und Mergesort (Folie 142, Seite 55 im Skript) Algorithmus procedure mergesort(l, r) : if l r then return fi; m := (r + l)/2 ; mergesort(l, m 1); mergesort(m, r); i := l; j := m; k := l; while k

Mehr

2. Effizienz von Algorithmen

2. Effizienz von Algorithmen Effizienz von Algorithmen 2. Effizienz von Algorithmen Effizienz von Algorithmen, Random Access Machine Modell, Funktionenwachstum, Asymptotik [Cormen et al, Kap. 2.2,3,4.2-4.4 Ottman/Widmayer, Kap. 1.1]

Mehr

Randomisierte Algorithmen am Beispiel Quicksort

Randomisierte Algorithmen am Beispiel Quicksort Randomisierte Algorithmen am Beispiel Quicksort Mathias Katzer Universität 28. Juli 2003 Mathias Katzer 0 Überblick Motivation: Begriff Randomisierung Quicksort Stochastik-Ausflug Effizienzanalyse Allgemeineres

Mehr

7. Sortieren Lernziele. 7. Sortieren

7. Sortieren Lernziele. 7. Sortieren 7. Sortieren Lernziele 7. Sortieren Lernziele: Die wichtigsten Sortierverfahren kennen und einsetzen können, Aufwand und weitere Eigenschaften der Sortierverfahren kennen, das Problemlösungsparadigma Teile-und-herrsche

Mehr

5. Übungsblatt zu Algorithmen I im SoSe 2016

5. Übungsblatt zu Algorithmen I im SoSe 2016 Karlsruher Institut für Technologie Institut für Theoretische Informatik Prof. Dr. Dennis Hofheinz Lukas Barth, Lisa Kohl 5. Übungsblatt zu Algorithmen I im SoSe 2016 https://crypto.iti.kit.edu/index.php?id=algo-sose16

Mehr

Übung Algorithmen und Datenstrukturen

Übung Algorithmen und Datenstrukturen Übung Algorithmen und Datenstrukturen Sommersemester 2017 Marc Bux, Humboldt-Universität zu Berlin Agenda 1. Die Landau-Notation (Wiederholung und Vertiefung) 2. Vorbereitung Aufgabenblatt 1, Aufgabe 1

Mehr

Algorithmen und Datenstrukturen (für ET/IT)

Algorithmen und Datenstrukturen (für ET/IT) Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 2017 Dr. Stefanie Demirci Computer Aided Medical Procedures Technische Universität München Programm heute 1 Einführung 2 Grundlagen von Algorithmen

Mehr

INSTITUT FÜR THEORETISCHE INFORMATIK, PROF. SANDERS

INSTITUT FÜR THEORETISCHE INFORMATIK, PROF. SANDERS Julian Arz, Timo Bingmann, Sebastian Schlag INSTITUT FÜR THEORETISCHE INFORMATIK, PROF. SANDERS 1 KIT Julian Universität Arz, des Timo LandesBingmann, Baden-Württemberg Sebastian und Schlag nationales

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Teil 2: Sortieren und Suchen Martin Hofmann LFE Theoretische Informatik, Institut für Informatik, Ludwig-Maximilians Universität, München 16. April 2016 Martin Hofmann Algorithmen

Mehr

Das Divide - and - Conquer Prinzip. Quicksort Formulierung und Analyse des Prinzips Geometrisches Divide and Conquer - Closest-Pair - Segmentschnitt

Das Divide - and - Conquer Prinzip. Quicksort Formulierung und Analyse des Prinzips Geometrisches Divide and Conquer - Closest-Pair - Segmentschnitt Divide and Conquer Das Divide - and - Conquer Prinzip Quicksort Formulierung und Analyse des Prinzips Geometrisches Divide and Conquer - Closest-Pair - Segmentschnitt 2 Quicksort: Sortieren durch Teilen

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen 1 Algorithmen und Datenstrukturen Wintersemester 2018/19 10. Vorlesung Das Auswahlproblem Prof. Dr. Alexander Wolff Lehrstuhl für Informatik I 2-1 Kleine Vorlesungsevaluierung : Ergebnisse Was läuft gut?

Mehr

Datenstrukturen und Algorithmen

Datenstrukturen und Algorithmen Datenstrukturen und Algorithmen VO 708.031 27.10.2011 stefan.klampfl@tugraz.at 1 Wiederholung Wir vergleichen Algorithmen anhand des ordnungsmäßigen Wachstums von T(n), S(n), Asymptotische Schranken: O-Notation:

Mehr

Algorithmen und Datenstrukturen SS09. Foliensatz 15. Michael Brinkmeier. Technische Universität Ilmenau Institut für Theoretische Informatik

Algorithmen und Datenstrukturen SS09. Foliensatz 15. Michael Brinkmeier. Technische Universität Ilmenau Institut für Theoretische Informatik Foliensatz 15 Michael Brinkmeier Technische Universität Ilmenau Institut für Theoretische Informatik Sommersemester 2009 TU Ilmenau Seite 1 / 16 Untere Schranken für das Vergleichsbasierte Sortieren TU

Mehr

Übung Algorithmen und Datenstrukturen

Übung Algorithmen und Datenstrukturen Übung Algorithmen und Datenstrukturen Sommersemester 2017 Patrick Schäfer, Humboldt-Universität zu Berlin Agenda: Sortierverfahren 1. Schreibtischtest 2. Stabilität 3. Sortierung spezieller Arrays 4. Untere

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Dipl. Inform. Andreas Wilkens 1 Organisatorisches Am Freitag, 9. Juni 2006, erfolgt in der Vorlesung eine Zusammenfassung der Vorlesungsinhalte als Vorbereitung auf die

Mehr

2 Sortieren. Beispiel: Es seien n = 8 und a = i : a i : ϕ(i) : a ϕ(i) :

2 Sortieren. Beispiel: Es seien n = 8 und a = i : a i : ϕ(i) : a ϕ(i) : 2 Sortieren Das Sortieren einer Datenfolge ist eines der am leichtesten zu verstehenden und am häufigsten auftretenden algorithmischen Probleme. In seiner einfachsten Form besteht das Problem darin, eine

Mehr

Entscheidungsbäume. Definition Entscheidungsbaum. Frage: Gibt es einen Sortieralgorithmus mit o(n log n) Vergleichen?

Entscheidungsbäume. Definition Entscheidungsbaum. Frage: Gibt es einen Sortieralgorithmus mit o(n log n) Vergleichen? Entscheidungsbäume Frage: Gibt es einen Sortieralgorithmus mit o(n log n) Vergleichen? Definition Entscheidungsbaum Sei T ein Binärbaum und A = {a 1,..., a n } eine zu sortierenden Menge. T ist ein Entscheidungsbaum

Mehr

Sortieren II / HeapSort Heaps

Sortieren II / HeapSort Heaps Organisatorisches VL-07: Sortieren II: HeapSort (Datenstrukturen und Algorithmen, SS 2017) Vorlesung: Gerhard Woeginger (Zimmer 4024 im E1) Email: dsal-i1@algo.rwth-aachen.de Webseite: http://algo.rwth-aachen.de/lehre/ss17/dsa.php

Mehr

Sortieralgorithmen. Selection Sort

Sortieralgorithmen. Selection Sort intuitivster Suchalgorithmus Sortieralgorithmen Selection Sort In jedem Schritt wird das kleinste Element im noch unsortierten Array gesucht und ans Ende des bisher sortierten Teilarrays gehangen 3 1 4

Mehr

Übungsblatt 4. Aufgabe 1. IN8009 Algorithmen und Datenstrukturen Thomas Stibor

Übungsblatt 4. Aufgabe 1. IN8009 Algorithmen und Datenstrukturen Thomas Stibor Aufgabe 1 Zeigen Sie 2n 2 = O(n 3 ), n = Ω(lgn), n 2 /2 2n = Θ(n 2 ). Übungsblatt 4 Zu zeigen: 2n 2 = O(n 3 ). O(g(n)) = {f(n) : es existieren positive Konstanten c und n 0, sodass 0 f(n) cg(n) für alle

Mehr

Lineare Kongruenzgeneratoren und Quicksort

Lineare Kongruenzgeneratoren und Quicksort Seminar Perlen der theoretischen Informatik Dozenten: Prof. Johannes Köbler und Olaf Beyersdorff Lineare Kongruenzgeneratoren und Quicksort Ausarbeitung zum Vortrag Mia Viktoria Meyer 12. November 2002

Mehr

Randomisierte Algorithmen

Randomisierte Algorithmen Randomisierte Algorithmen Kapitel 1 Markus Lohrey Universität Leipzig http://www.informatik.uni-leipzig.de/~lohrey/rand WS 2005/2006 Markus Lohrey (Universität Leipzig) Randomisierte Algorithmen WS 2005/2006

Mehr

Informatik II, SS 2016

Informatik II, SS 2016 Informatik II - SS 2016 (Algorithmen & Datenstrukturen) Vorlesung 3 (27.4.2014) O-Notation, Asymptotische Analyse, Sortieren III Algorithmen und Komplexität Selection Sort Algorithmus SelectionSort (informell):

Mehr

Komplexität von Algorithmen:

Komplexität von Algorithmen: Komplexität von Algorithmen: Ansatz: Beschreiben/erfassen der Komplexität über eine Funktion, zur Abschätzung des Rechenaufwandes abhängig von der Größe der Eingabe n Uns interessiert: (1) Wie sieht eine

Mehr

Übersicht. Einfache Verfahren MergeSort Untere Schranke QuickSort Selektieren Schnelleres Sortieren Externes Sortieren. 6 Sortieren.

Übersicht. Einfache Verfahren MergeSort Untere Schranke QuickSort Selektieren Schnelleres Sortieren Externes Sortieren. 6 Sortieren. Übersicht 6 Sortieren Einfache Verfahren MergeSort Untere Schranke QuickSort Selektieren Schnelleres Sortieren Externes Sortieren H. Täubig (TUM) GAD SS 14 221 Statisches Wörterbuch Sortieren Lösungsmöglichkeiten:

Mehr