6 Quicksort. die mittlere Laufzeit Θ(n log n) beträgt und. die in der asymptotischen Notation verborgenen Konstanten sehr klein sind.
|
|
- Damian Kalb
- vor 5 Jahren
- Abrufe
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 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
MehrAlgorithmen 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
MehrKapitel 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
Mehr4 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.
MehrDatenstrukturen & 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
MehrAlgorithmen 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,
MehrQuickSort 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
MehrSortieralgorithmen. 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
MehrRekursionsbä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) Sommersemester 2017 Rüdiger Göbl, Mai Bui Computer Aided Medical Procedures Technische Universität München Fibonacci Zahlen Fibonacci Folge Die Fibonacci
Mehr14. 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
Mehr1 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
MehrDas 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.
MehrGrundlagen: 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) Wintersemester 2012/13 Jakob Vogel Computer-Aided Medical Procedures Technische Universität München Komplexität von Programmen Laufzeit kann näherungsweise
MehrDas 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
Mehr8. 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
MehrHeapsort, 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:
MehrHeapsort, 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)
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.
MehrDas 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
MehrDas 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 Sommersemester 017 Marc Bux, Humboldt-Universität zu Berlin Agenda 1. Vorrechnen von Aufgabenblatt 1. Wohlgeformte Klammerausdrücke 3. Teile und Herrsche Agenda 1.
MehrVorlesung 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
MehrKap. 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
MehrAbschnitt: 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
MehrInformatik 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
MehrFormaler. 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
MehrHeapsort. 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,
Mehr8. 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.
MehrKapitel 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
Mehr8.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
MehrTechnische 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
MehrAufgabe 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
MehrDatenstrukturen & 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?
Mehr3. 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
Mehr2. 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
Mehr2 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
MehrA7.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
MehrPraktikum 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
MehrAlle 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
Mehr1. 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 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
MehrAsymptotische 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
Mehr1.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:
MehrKapitel 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
MehrAlgorithmen 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
MehrAlgorithmen 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
MehrAlgorithmen 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
MehrRandomisierte 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
MehrQuicksort 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.
MehrDatenstrukturen 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
MehrWiederholung. 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
MehrInformatik 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
MehrJAVA - 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
MehrInformatik 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
Mehr9. 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
Mehr2.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 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
MehrInterne 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
MehrSortieren & 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
MehrBucketsort. 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:
MehrEingabe: 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
MehrHeapsort / 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
MehrAlgorithmen 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
MehrStudentisches 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
MehrDatenstrukturen 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
MehrAlgorithmentheorie Randomisierung
Algorithmentheorie 03 - Randomisierung Prof. Dr. S. Albers Randomisierung Klassen von randomisierten Algorithmen Randomisierter Quicksort Randomisierter Primzahltest Kryptographie 2 1. Klassen von randomisierten
MehrAlgorithmen 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,
MehrAlgorithmen 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
Mehr3.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
MehrAlgorithmentheorie 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
MehrDivide & 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 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,
MehrSuchen 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
Mehr2. 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]
MehrRandomisierte 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
Mehr7. 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
Mehr5. Ü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 Sommersemester 2017 Marc Bux, Humboldt-Universität zu Berlin Agenda 1. Die Landau-Notation (Wiederholung und Vertiefung) 2. Vorbereitung Aufgabenblatt 1, Aufgabe 1
MehrAlgorithmen 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
MehrINSTITUT 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
MehrAlgorithmen 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
MehrDas 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
MehrAlgorithmen 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?
MehrDatenstrukturen 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:
MehrAlgorithmen 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 Sommersemester 2017 Patrick Schäfer, Humboldt-Universität zu Berlin Agenda: Sortierverfahren 1. Schreibtischtest 2. Stabilität 3. Sortierung spezieller Arrays 4. Untere
MehrAlgorithmen 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
Mehr2 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
MehrEntscheidungsbä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
MehrSortieren 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
MehrSortieralgorithmen. 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
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
MehrLineare 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
MehrRandomisierte 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
MehrInformatik 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):
MehrKomplexitä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 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