Die asymptotische Notation

Größe: px
Ab Seite anzeigen:

Download "Die asymptotische Notation"

Transkript

1 Die asymptotische Notation f, g : N R 0 seien Funktionen, die einer Eingabelänge n N eine nicht-negative Laufzeit f (n), bzw. g(n) zuweisen. Asymptotik 1 / 9

2 Die asymptotische Notation f, g : N R 0 seien Funktionen, die einer Eingabelänge n N eine nicht-negative Laufzeit f (n), bzw. g(n) zuweisen. Die Groß-Oh Notation: f = O(g) Es gibt eine positive Konstante c > 0 und eine natürliche Zahl n 0 N, so dass f (n) c g(n) für alle n n 0 gilt: f wächst höchstens so schnell wie g. Asymptotik 1 / 9

3 Die asymptotische Notation f, g : N R 0 seien Funktionen, die einer Eingabelänge n N eine nicht-negative Laufzeit f (n), bzw. g(n) zuweisen. Die Groß-Oh Notation: f = O(g) Es gibt eine positive Konstante c > 0 und eine natürliche Zahl n 0 N, so dass f (n) c g(n) für alle n n 0 gilt: f wächst höchstens so schnell wie g. f = Ω(g) g = O(f ) : f wächst mindestens so schnell wie g. Asymptotik 1 / 9

4 Die asymptotische Notation f, g : N R 0 seien Funktionen, die einer Eingabelänge n N eine nicht-negative Laufzeit f (n), bzw. g(n) zuweisen. Die Groß-Oh Notation: f = O(g) Es gibt eine positive Konstante c > 0 und eine natürliche Zahl n 0 N, so dass f (n) c g(n) für alle n n 0 gilt: f wächst höchstens so schnell wie g. f = Ω(g) g = O(f ) : f wächst mindestens so schnell wie g. f = Θ(g) f = O(g) und g = O(f ) : f und g wachsen gleich schnell. Asymptotik 1 / 9

5 Die asymptotische Notation f, g : N R 0 seien Funktionen, die einer Eingabelänge n N eine nicht-negative Laufzeit f (n), bzw. g(n) zuweisen. Die Groß-Oh Notation: f = O(g) Es gibt eine positive Konstante c > 0 und eine natürliche Zahl n 0 N, so dass f (n) c g(n) für alle n n 0 gilt: f wächst höchstens so schnell wie g. f = Ω(g) g = O(f ) : f wächst mindestens so schnell wie g. f = Θ(g) f = O(g) und g = O(f ) : f und g wachsen gleich schnell. Die Klein-Oh Notation: f = o(g) lim f wächst langsamer als g. n f (n) g(n) = 0: Asymptotik 1 / 9

6 Wie schnell dominiert die Asymptotik? Annahme: Ein einfacher Befehl benötigt 10 9 Sekunden. Asymptotik 2 / 9

7 Wie schnell dominiert die Asymptotik? Annahme: Ein einfacher Befehl benötigt 10 9 Sekunden. n n 2 n 3 n 10 2 n n! }{{ 31 } }{{} }{{} mehr als mehr als mehr als Jahre Jahre 600 Jahre illion 10 }{{ 12 } 10 }{{ 18 } mehr als mehr als 15 Minuten 10 Jahre Asymptotik 2 / 9

8 Grenzwerte Grenzwerte sollten das Wachstum vorausssagen! Asymptotik 3 / 9

9 Grenzwerte Grenzwerte sollten das Wachstum vorausssagen! Der Grenzwert der Folge f (n) f (n) g(n) existiere und es sei lim n g(n) = c. Asymptotik 3 / 9

10 Grenzwerte Grenzwerte sollten das Wachstum vorausssagen! Der Grenzwert der Folge f (n) f (n) g(n) existiere und es sei lim n g(n) = c. Wenn c = 0, dann ist Asymptotik 3 / 9

11 Grenzwerte Grenzwerte sollten das Wachstum vorausssagen! Der Grenzwert der Folge f (n) f (n) g(n) existiere und es sei lim n g(n) = c. Wenn c = 0, dann ist f = o(g): f wächst langsamer als g. Asymptotik 3 / 9

12 Grenzwerte Grenzwerte sollten das Wachstum vorausssagen! Der Grenzwert der Folge f (n) f (n) g(n) existiere und es sei lim n g(n) = c. Wenn c = 0, dann ist f = o(g): f wächst langsamer als g. Wenn 0 < c <, dann ist Asymptotik 3 / 9

13 Grenzwerte Grenzwerte sollten das Wachstum vorausssagen! Der Grenzwert der Folge f (n) f (n) g(n) existiere und es sei lim n g(n) = c. Wenn c = 0, dann ist f = o(g): f wächst langsamer als g. Wenn 0 < c <, dann ist f = Θ(g): f und g wachsen gleich schnell. Asymptotik 3 / 9

14 Grenzwerte Grenzwerte sollten das Wachstum vorausssagen! Der Grenzwert der Folge f (n) f (n) g(n) existiere und es sei lim n g(n) = c. Wenn c = 0, dann ist f = o(g): f wächst langsamer als g. Wenn 0 < c <, dann ist f = Θ(g): f und g wachsen gleich schnell. Wenn 0 c <, dann ist Asymptotik 3 / 9

15 Grenzwerte Grenzwerte sollten das Wachstum vorausssagen! Der Grenzwert der Folge f (n) f (n) g(n) existiere und es sei lim n g(n) = c. Wenn c = 0, dann ist f = o(g): f wächst langsamer als g. Wenn 0 < c <, dann ist f = Θ(g): f und g wachsen gleich schnell. Wenn 0 c <, dann ist f = O(g): f wächst höchstens so schnell wie g. Asymptotik 3 / 9

16 Grenzwerte Grenzwerte sollten das Wachstum vorausssagen! Der Grenzwert der Folge f (n) f (n) g(n) existiere und es sei lim n g(n) = c. Wenn c = 0, dann ist f = o(g): f wächst langsamer als g. Wenn 0 < c <, dann ist f = Θ(g): f und g wachsen gleich schnell. Wenn 0 c <, dann ist f = O(g): f wächst höchstens so schnell wie g. Wenn 0 < c, dann ist Asymptotik 3 / 9

17 Grenzwerte Grenzwerte sollten das Wachstum vorausssagen! Der Grenzwert der Folge f (n) f (n) g(n) existiere und es sei lim n g(n) = c. Wenn c = 0, dann ist f = o(g): f wächst langsamer als g. Wenn 0 < c <, dann ist f = Θ(g): f und g wachsen gleich schnell. Wenn 0 c <, dann ist f = O(g): f wächst höchstens so schnell wie g. Wenn 0 < c, dann ist f = Ω(g): f wächst mindestens so schnell wie g. Asymptotik 3 / 9

18 Die Regel von de l Hospital f (n) lim n g(n) = lim f n g (n), falls der letzte Grenzwert existiert und falls lim f (n) = lim g(n) {0, }. n n Asymptotik 4 / 9

19 Die Regel von de l Hospital f (n) lim n g(n) = lim f n g (n), falls der letzte Grenzwert existiert und falls lim f (n) = lim g(n) {0, }. n n log 2 n = o(n). Warum? lim log n 2 n = lim n =, n 2 der Grenzwert lim (n) = lim log n n (log 2 e ln(n)) n n existiert und log lim 2 (n) n n = 0 folgt mit der Regel von de l Hospital. = lim n log 2 e 1/n 1 = 0 Asymptotik 4 / 9

20 Die Regel von de l Hospital f (n) lim n g(n) = lim f n g (n), falls der letzte Grenzwert existiert und falls lim f (n) = lim g(n) {0, }. n n log 2 n = o(n). Warum? lim log n 2 n = lim n =, n 2 der Grenzwert lim (n) = lim log n n (log 2 e ln(n)) n n existiert und log lim 2 (n) n n = 0 folgt mit der Regel von de l Hospital. Weitere Anwendungen: log 2 log 2 n = o(log 2 n). = lim n log 2 e 1/n 1 = 0 Asymptotik 4 / 9

21 Die Regel von de l Hospital f (n) lim n g(n) = lim f n g (n), falls der letzte Grenzwert existiert und falls lim f (n) = lim g(n) {0, }. n n log 2 n = o(n). Warum? lim log n 2 n = lim n =, n 2 der Grenzwert lim (n) = lim log n n (log 2 e ln(n)) n n existiert und log lim 2 (n) n n = 0 folgt mit der Regel von de l Hospital. Weitere Anwendungen: log 2 log 2 n = o(log 2 n). log 2 log 2 log 2 n = o(log 2 log 2 n). = lim n log 2 e 1/n 1 = 0 Asymptotik 4 / 9

22 Die Regel von de l Hospital f (n) lim n g(n) = lim f n g (n), falls der letzte Grenzwert existiert und falls lim f (n) = lim g(n) {0, }. n n log 2 n = o(n). Warum? lim log n 2 n = lim n =, n 2 der Grenzwert lim (n) = lim log n n (log 2 e ln(n)) n n existiert und log lim 2 (n) n n = 0 folgt mit der Regel von de l Hospital. Weitere Anwendungen: log 2 log 2 n = o(log 2 n). log 2 log 2 log 2 n = o(log 2 log 2 n). (k+1) log 2 n = o(log (k) 2 n) für jedes k. = lim n log 2 e 1/n 1 = 0 Asymptotik 4 / 9

23 Eine Wachstums-Hierarchie f 1 (n) = 1, dann ist f 1 = o(log 2 log 2 n), lim n log 2 log 2 n =. Asymptotik Eine Wachstums-Hierarchie 5 / 9

24 Eine Wachstums-Hierarchie f 1 (n) = 1, dann ist f 1 = o(log 2 log 2 n), lim n log 2 log 2 n =. log 2 log 2 n = o(log 2 n), wende de l Hospital an. Asymptotik Eine Wachstums-Hierarchie 5 / 9

25 Eine Wachstums-Hierarchie f 1 (n) = 1, dann ist f 1 = o(log 2 log 2 n), lim n log 2 log 2 n =. log 2 log 2 n = o(log 2 n), wende de l Hospital an. log 2 n = Θ(log a n) für jedes a > 1, log 2 n = log 2 a log a n. Asymptotik Eine Wachstums-Hierarchie 5 / 9

26 Eine Wachstums-Hierarchie f 1 (n) = 1, dann ist f 1 = o(log 2 log 2 n), lim n log 2 log 2 n =. log 2 log 2 n = o(log 2 n), wende de l Hospital an. log 2 n = Θ(log a n) für jedes a > 1, log 2 n = log 2 a log a n. log 2 n = o(n 1/k ) für jedes k > 1, wende de l Hospital an. Asymptotik Eine Wachstums-Hierarchie 5 / 9

27 Eine Wachstums-Hierarchie f 1 (n) = 1, dann ist f 1 = o(log 2 log 2 n), lim n log 2 log 2 n =. log 2 log 2 n = o(log 2 n), wende de l Hospital an. log 2 n = Θ(log a n) für jedes a > 1, log 2 n = log 2 a log a n. log 2 n = o(n 1/k ) für jedes k > 1, wende de l Hospital an. n 1/k = o(n) und n = o(n log 2 n) für jedes k > 1, lim n n 1/k n = lim n 1 n 1 1/k = 0 und lim n log 2 n =. Asymptotik Eine Wachstums-Hierarchie 5 / 9

28 Eine Wachstums-Hierarchie f 1 (n) = 1, dann ist f 1 = o(log 2 log 2 n), lim n log 2 log 2 n =. log 2 log 2 n = o(log 2 n), wende de l Hospital an. log 2 n = Θ(log a n) für jedes a > 1, log 2 n = log 2 a log a n. log 2 n = o(n 1/k ) für jedes k > 1, wende de l Hospital an. n 1/k = o(n) und n = o(n log 2 n) für jedes k > 1, lim n n 1/k n = lim n 1 n 1 1/k = 0 und lim n log 2 n =. n log 2 n = o(n k ) für jedes k > 1. Asymptotik Eine Wachstums-Hierarchie 5 / 9

29 Eine Wachstums-Hierarchie f 1 (n) = 1, dann ist f 1 = o(log 2 log 2 n), lim n log 2 log 2 n =. log 2 log 2 n = o(log 2 n), wende de l Hospital an. log 2 n = Θ(log a n) für jedes a > 1, log 2 n = log 2 a log a n. log 2 n = o(n 1/k ) für jedes k > 1, wende de l Hospital an. n 1/k = o(n) und n = o(n log 2 n) für jedes k > 1, lim n n 1/k n = lim n 1 n 1 1/k = 0 und lim n log 2 n =. n log 2 n = o(n k ) für jedes k > 1. n k = o(b n ) für jedes b > 1, n k = b k log b n und Asymptotik Eine Wachstums-Hierarchie 5 / 9

30 Eine Wachstums-Hierarchie f 1 (n) = 1, dann ist f 1 = o(log 2 log 2 n), lim n log 2 log 2 n =. log 2 log 2 n = o(log 2 n), wende de l Hospital an. log 2 n = Θ(log a n) für jedes a > 1, log 2 n = log 2 a log a n. log 2 n = o(n 1/k ) für jedes k > 1, wende de l Hospital an. n 1/k = o(n) und n = o(n log 2 n) für jedes k > 1, lim n n 1/k n = lim n 1 n 1 1/k = 0 und lim n log 2 n =. n log 2 n = o(n k ) für jedes k > 1. n k = o(b n ) für jedes b > 1, n k = b k log b n und n lim k b n b = lim k log b n n n b = lim n n b k log b n n = 0. Asymptotik Eine Wachstums-Hierarchie 5 / 9

31 Eine Wachstums-Hierarchie f 1 (n) = 1, dann ist f 1 = o(log 2 log 2 n), lim n log 2 log 2 n =. log 2 log 2 n = o(log 2 n), wende de l Hospital an. log 2 n = Θ(log a n) für jedes a > 1, log 2 n = log 2 a log a n. log 2 n = o(n 1/k ) für jedes k > 1, wende de l Hospital an. n 1/k = o(n) und n = o(n log 2 n) für jedes k > 1, lim n n 1/k n = lim n 1 n 1 1/k = 0 und lim n log 2 n =. n log 2 n = o(n k ) für jedes k > 1. n k = o(b n ) für jedes b > 1, n k = b k log b n und n lim k b n b = lim k log b n n n b = lim n n b k log b n n = 0. Und b n = o(n!) für jedes b > 1. Asymptotik Eine Wachstums-Hierarchie 5 / 9

32 For-und While-Schleifen for (i=1; i < n ; i++) vier einfache Anweisungen; Laufzeit = Laufzeitbestimmung 6 / 9

33 For-und While-Schleifen for (i=1; i < n ; i++) vier einfache Anweisungen; Laufzeit = O(n). Laufzeitbestimmung 6 / 9

34 For-und While-Schleifen for (i=1; i < n ; i++) vier einfache Anweisungen; Laufzeit = O(n). for (i=1; i < n ; i++) for (j=i+1; j < n ; j++) zwei einfache Anweisungen; Laufzeit = Laufzeitbestimmung 6 / 9

35 For-und While-Schleifen for (i=1; i < n ; i++) vier einfache Anweisungen; Laufzeit = O(n). for (i=1; i < n ; i++) for (j=i+1; j < n ; j++) zwei einfache Anweisungen; Laufzeit = O(n 2 ). Laufzeitbestimmung 6 / 9

36 For-und While-Schleifen for (i=1; i < n ; i++) vier einfache Anweisungen; Laufzeit = O(n). for (i=1; i < n ; i++) for (j=i+1; j < n ; j++) zwei einfache Anweisungen; Laufzeit = O(n 2 ). while (n >1) n = 3n/4; Laufzeit = Laufzeitbestimmung 6 / 9

37 For-und While-Schleifen for (i=1; i < n ; i++) vier einfache Anweisungen; Laufzeit = O(n). for (i=1; i < n ; i++) for (j=i+1; j < n ; j++) zwei einfache Anweisungen; Laufzeit = O(n 2 ). while (n >1) n = 3n/4; Laufzeit = O(log 2 n). Laufzeitbestimmung 6 / 9

38 For-und While-Schleifen for (i=1; i < n ; i++) vier einfache Anweisungen; Laufzeit = O(n). for (i=1; i < n ; i++) for (j=i+1; j < n ; j++) zwei einfache Anweisungen; Laufzeit = O(n 2 ). while (n >1) n = 3n/4; Laufzeit = O(log 2 n). while (n >1) {for (i=1; i < n; i++) {drei einfache Anweisungen;} n = 4n/5; } Laufzeit = Laufzeitbestimmung 6 / 9

39 For-und While-Schleifen for (i=1; i < n ; i++) vier einfache Anweisungen; Laufzeit = O(n). for (i=1; i < n ; i++) for (j=i+1; j < n ; j++) zwei einfache Anweisungen; Laufzeit = O(n 2 ). while (n >1) n = 3n/4; Laufzeit = O(log 2 n). while (n >1) {for (i=1; i < n; i++) {drei einfache Anweisungen;} n = 4n/5; } Laufzeit = O(n). Laufzeitbestimmung 6 / 9

40 Anwendungen des Sortierens Wann soll was sortiert werden? Laufzeitbestimmung 7 / 9

41 Anwendungen des Sortierens Wann soll was sortiert werden? 1 Wie bestimmt man den Durchschnitt von n Intervallen [a i, b i ] möglichst schnell? Laufzeitbestimmung 7 / 9

42 Anwendungen des Sortierens Wann soll was sortiert werden? 1 Wie bestimmt man den Durchschnitt von n Intervallen [a i, b i ] möglichst schnell? 2 Wie bestimmt man den Durchschnitt von n Rechtecken [a i, b i ] [c i, d i ] möglichst schnell? Laufzeitbestimmung 7 / 9

43 Anwendungen des Sortierens Wann soll was sortiert werden? 1 Wie bestimmt man den Durchschnitt von n Intervallen [a i, b i ] möglichst schnell? 2 Wie bestimmt man den Durchschnitt von n Rechtecken [a i, b i ] [c i, d i ] möglichst schnell? 3 Wir sollen die Vereinigung von n Intervallen [a i, b i ] möglichst schnell als eine Vereinigung von disjunkten Intervallen darstellen. Wie? Laufzeitbestimmung 7 / 9

44 Anwendungen des Sortierens Wann soll was sortiert werden? 1 Wie bestimmt man den Durchschnitt von n Intervallen [a i, b i ] möglichst schnell? 2 Wie bestimmt man den Durchschnitt von n Rechtecken [a i, b i ] [c i, d i ] möglichst schnell? 3 Wir sollen die Vereinigung von n Intervallen [a i, b i ] möglichst schnell als eine Vereinigung von disjunkten Intervallen darstellen. Wie? 4 Die k größten Zahlen aus einem unsortierten Array A sollen bestimmt werden. Sollte man A sortieren oder einen Heap aus A bauen und k mal Delete_Max anwenden oder...? Laufzeitbestimmung 7 / 9

45 Anwendungen des Sortierens Wann soll was sortiert werden? 1 Wie bestimmt man den Durchschnitt von n Intervallen [a i, b i ] möglichst schnell? 2 Wie bestimmt man den Durchschnitt von n Rechtecken [a i, b i ] [c i, d i ] möglichst schnell? 3 Wir sollen die Vereinigung von n Intervallen [a i, b i ] möglichst schnell als eine Vereinigung von disjunkten Intervallen darstellen. Wie? 4 Die k größten Zahlen aus einem unsortierten Array A sollen bestimmt werden. Sollte man A sortieren oder einen Heap aus A bauen und k mal Delete_Max anwenden oder...? 5 Wir sollen feststellen, ob alle Schlüssel im Array A auch im Array B vorkommen. Wie? Laufzeitbestimmung 7 / 9

46 Wasserkrüge Gegeben sind n blaue und rote Wasserkrüge, wobei - alle blauen Krüge unterschiedliche Kapazität besitzen - und es zu jedem blauen Krug genau einen roten Krug gleicher Kapazität gibt. Finde alle Paare blauer und roter Krüge gleicher Kapazität mit möglichst wenigen Vergleichen. Laufzeitbestimmung 8 / 9

47 Wasserkrüge Gegeben sind n blaue und rote Wasserkrüge, wobei - alle blauen Krüge unterschiedliche Kapazität besitzen - und es zu jedem blauen Krug genau einen roten Krug gleicher Kapazität gibt. Finde alle Paare blauer und roter Krüge gleicher Kapazität mit möglichst wenigen Vergleichen. Eine Vergleichsoperation: Fülle einen blauen Krug b mit Wasser und entleere Krug b in einen roten Krug r. Wieviele Vergleichsoperationen sind ausreichend? Laufzeitbestimmung 8 / 9

48 Sortieren: Zusammenfassung Quicksort: Ein schnelles in place Sortierverfahren. Quicksort ist ideal, wenn alle Daten in den Hauptspeicher passen. Zusammenfassung: Sortieren 9 / 9

49 Sortieren: Zusammenfassung Quicksort: Ein schnelles in place Sortierverfahren. Quicksort ist ideal, wenn alle Daten in den Hauptspeicher passen. Die zufällige Pivotwahl garantiert, dass jede Folge von n Zahlen in erwarteter Zeit O(n log 2 n) sortiert wird. Zusammenfassung: Sortieren 9 / 9

50 Sortieren: Zusammenfassung Quicksort: Ein schnelles in place Sortierverfahren. Quicksort ist ideal, wenn alle Daten in den Hauptspeicher passen. Die zufällige Pivotwahl garantiert, dass jede Folge von n Zahlen in erwarteter Zeit O(n log 2 n) sortiert wird. Eine Quicksort-Variante löst das Auswahlproblem in Zeit O(n). Zusammenfassung: Sortieren 9 / 9

51 Sortieren: Zusammenfassung Quicksort: Ein schnelles in place Sortierverfahren. Quicksort ist ideal, wenn alle Daten in den Hauptspeicher passen. Die zufällige Pivotwahl garantiert, dass jede Folge von n Zahlen in erwarteter Zeit O(n log 2 n) sortiert wird. Eine Quicksort-Variante löst das Auswahlproblem in Zeit O(n). Mergesort: Sortiert jede Folge von n Zahlen in worst case Zeit O(n log2 n). Zusammenfassung: Sortieren 9 / 9

52 Sortieren: Zusammenfassung Quicksort: Ein schnelles in place Sortierverfahren. Quicksort ist ideal, wenn alle Daten in den Hauptspeicher passen. Die zufällige Pivotwahl garantiert, dass jede Folge von n Zahlen in erwarteter Zeit O(n log 2 n) sortiert wird. Eine Quicksort-Variante löst das Auswahlproblem in Zeit O(n). Mergesort: Sortiert jede Folge von n Zahlen in worst case Zeit O(n log2 n). Eine nicht-rekursive Variante sortiert n auf einem Externspeicher gespeicherte Zahlen mit höchstens O( n B log n M B M ) Speicherzugriffen, solange B Zahlen in einem Schwung vom Externspeicher in den Hauptspeicher der Größe M gebracht werden können. Zusammenfassung: Sortieren 9 / 9

53 Sortieren: Zusammenfassung Quicksort: Ein schnelles in place Sortierverfahren. Quicksort ist ideal, wenn alle Daten in den Hauptspeicher passen. Die zufällige Pivotwahl garantiert, dass jede Folge von n Zahlen in erwarteter Zeit O(n log 2 n) sortiert wird. Eine Quicksort-Variante löst das Auswahlproblem in Zeit O(n). Mergesort: Sortiert jede Folge von n Zahlen in worst case Zeit O(n log2 n). Eine nicht-rekursive Variante sortiert n auf einem Externspeicher gespeicherte Zahlen mit höchstens O( n B log n M B M ) Speicherzugriffen, solange B Zahlen in einem Schwung vom Externspeicher in den Hauptspeicher der Größe M gebracht werden können. Jedes vergleichsorientierte Sortierverfahren benötigt mindestens Ω(n log 2 n) Vergleiche, aber Zusammenfassung: Sortieren 9 / 9

54 Sortieren: Zusammenfassung Quicksort: Ein schnelles in place Sortierverfahren. Quicksort ist ideal, wenn alle Daten in den Hauptspeicher passen. Die zufällige Pivotwahl garantiert, dass jede Folge von n Zahlen in erwarteter Zeit O(n log 2 n) sortiert wird. Eine Quicksort-Variante löst das Auswahlproblem in Zeit O(n). Mergesort: Sortiert jede Folge von n Zahlen in worst case Zeit O(n log2 n). Eine nicht-rekursive Variante sortiert n auf einem Externspeicher gespeicherte Zahlen mit höchstens O( n B log n M B M ) Speicherzugriffen, solange B Zahlen in einem Schwung vom Externspeicher in den Hauptspeicher der Größe M gebracht werden können. Jedes vergleichsorientierte Sortierverfahren benötigt mindestens Ω(n log 2 n) Vergleiche, aber Radixsort sortiert n Zahlen aus der Menge {0,..., n L 1} in Zeit O(n L) ohne irgendeinen Vergleich auszuführen. Zusammenfassung: Sortieren 9 / 9

Das O-Tutorial. 1 Definition von O, Ω, Θ, o und ω

Das O-Tutorial. 1 Definition von O, Ω, Θ, o und ω Definition von O, Ω, Θ, o und ω Das O-Tutorial Seien f und g zwei Funktionen von N nach R 0. Hierbei bezeichne R 0 die nicht-negativen reellen Zahlen. Die Funktionsmengen O, Ω, Θ, o und ω sind wie folgt

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

Asymptotik und Laufzeitanalyse

Asymptotik und Laufzeitanalyse und Vorkurs Informatik SoSe13 08. April 2013 und Algorithmen = Rechenvorschriften Wir fragen uns: Ist der Algorithmus effizient? welcher Algorithmus löst das Problem schneller? wie lange braucht der Algorithmus

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

Übung Algorithmen und Datenstrukturen

Übung Algorithmen und Datenstrukturen Übung Algorithmen und Datenstrukturen Sommersemester 2016 Patrick Schäfer, Humboldt-Universität zu Berlin Organisation Vorlesung: Montag 11 13 Uhr Marius Kloft RUD 26, 0 115 Mittwoch 11 13 Uhr Marius Kloft

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

Datenstrukturen: Mathematische Grundlagen. 26. Juli / 27

Datenstrukturen: Mathematische Grundlagen. 26. Juli / 27 Datenstrukturen: Mathematische Grundlagen 26. Juli 2015 1 / 27 Asymptotik Die Groß-Oh Notation: f = O(g) Es gibt eine positive Konstante c > 0 und eine natürliche Zahl n 0 N, so dass f (n) c g(n) für alle

Mehr

Programmieren und Problemlösen

Programmieren und Problemlösen Dennis Komm Programmieren und Problemlösen Komplexität von Algorithmen Frühling 2019 27. Februar 2019 Komplexität von Algorithmen Aufgabe Primzahltest Schreibe ein Programm, das eine ganze Zahl x als Eingabe

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

Algorithmen und Datenstrukturen 1 Algorithmen und Datenstrukturen Wintersemester 2014/15 3. Vorlesung Laufzeitanalyse Prof. Dr. Alexander Wolff Lehrstuhl für Informatik I 2 Recap: Diskutieren Sie mit Ihrer NachbarIn! 1. 2. 3. Was sind

Mehr

A6.1 Logarithmus. Algorithmen und Datenstrukturen. Algorithmen und Datenstrukturen. A6.1 Logarithmus. A6.2 Landau-Notation. A6.

A6.1 Logarithmus. Algorithmen und Datenstrukturen. Algorithmen und Datenstrukturen. A6.1 Logarithmus. A6.2 Landau-Notation. A6. Algorithmen und Datenstrukturen 8. März 2018 A6. Laufzeitanalyse: Logarithmus and Landau-Symbole Algorithmen und Datenstrukturen A6. Laufzeitanalyse: Logarithmus and Landau-Symbole Marcel Lüthi and Gabriele

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

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

Algorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2012 / 2013 Vorlesung 3, Donnerstag 7.

Algorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2012 / 2013 Vorlesung 3, Donnerstag 7. Algorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2012 / 2013 Vorlesung 3, Donnerstag 7. November 2013 (O-Notation, Theta, Omega) Junior-Prof. Dr. Olaf Ronneberger

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

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

Algorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2014 / 2015 Vorlesung 3, Donnerstag 6.

Algorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2014 / 2015 Vorlesung 3, Donnerstag 6. Algorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2014 / 2015 Vorlesung 3, Donnerstag 6. November 2014 (O-Notation, Theta, Omega) Junior-Prof. Dr. Olaf Ronneberger

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

Klausur Algorithmen und Datenstrukturen

Klausur Algorithmen und Datenstrukturen Technische Universität Braunschweig Sommersemester 2018 Institut für Betriebssysteme und Rechnerverbund Abteilung Algorithmik Prof. Dr. Sándor P. Fekete Christian Rieck Arne Schmidt Klausur Algorithmen

Mehr

Übersicht. Datenstrukturen und Algorithmen. Laufzeit von Algorithmen. Übersicht. Vorlesung 2: Asymptotische Effizienz (K3) Begründung Grenzwerte

Übersicht. Datenstrukturen und Algorithmen. Laufzeit von Algorithmen. Übersicht. Vorlesung 2: Asymptotische Effizienz (K3) Begründung Grenzwerte Übersicht Datenstrukturen und Algorithmen Vorlesung 2: (K3) Joost-Pieter Katoen Lehrstuhl für Informatik 2 Software Modeling and Verification Group http://moves.rwth-aachen.de/teaching/ss-15/dsal/ 10.

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

4. Sortieren 4.1 Vorbemerkungen

4. Sortieren 4.1 Vorbemerkungen . Seite 1/21 4. Sortieren 4.1 Vorbemerkungen allgemeines Sortierproblem spezielle Sortierprobleme Ordne a 1,..., a n so um, dass Elemente in aufsteigender Reihenfolge stehen. Die a i stammen aus vollständig

Mehr

Einführung in die Informatik 2

Einführung in die Informatik 2 Einführung in die Informatik 2 Mathematische Grundbegriffe Sven Kosub AG Algorithmik/Theorie komplexer Systeme Universität Konstanz E 202 Sven.Kosub@uni-konstanz.de Sprechstunde: Freitag, 12:30-14:00 Uhr,

Mehr

Theoretische Informatik 1. Wintersemester 2012/13. Herzlich willkommen!

Theoretische Informatik 1. Wintersemester 2012/13. Herzlich willkommen! Theoretische Informatik 1 Wintersemester 2012/13 Herzlich willkommen! 1 / 75 Worum gehts? (1/2) Was ist machbar? Welche algorithmischen Probleme kann man mit welchen Methoden effizient lösen? Effizient

Mehr

Klausur Algorithmen und Datenstrukturen

Klausur Algorithmen und Datenstrukturen Technische Universität Braunschweig Wintersemester 2013/2014 Institut für Betriebssysteme und Rechnerverbund Abteilung Algorithmik Prof. Dr. Sándor P. Fekete Stephan Friedrichs Klausur Algorithmen und

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

Ü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

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

f 1 (n) = log(n) + n 2 n 5 f 2 (n) = n 3 + n 2 f 3 (n) = log(n 2 ) f 4 (n) = n n f 5 (n) = (log(n)) 2

f 1 (n) = log(n) + n 2 n 5 f 2 (n) = n 3 + n 2 f 3 (n) = log(n 2 ) f 4 (n) = n n f 5 (n) = (log(n)) 2 Prof. aa Dr. E. Ábrahám Datenstrukturen und Algorithmen SS Lösung - Präsenzübung.05.0 F. Corzilius, S. Schupp, T. Ströder Aufgabe (Asymptotische Komplexität): (6 + 0 + 6 = Punkte) a) Geben Sie eine formale

Mehr

Klausur Algorithmen und Datenstrukturen

Klausur Algorithmen und Datenstrukturen Technische Universität Braunschweig Wintersemester 2017/2018 Institut für Betriebssysteme und Rechnerverbund Abteilung Algorithmik Prof. Dr. Sándor P. Fekete Christian Rieck Arne Schmidt Klausur Algorithmen

Mehr

Abschnitt 7: Komplexität von imperativen Programmen

Abschnitt 7: Komplexität von imperativen Programmen Abschnitt 7: Komplexität von imperativen Programmen 7. Komplexität von imperativen Programmen 7 Komplexität von imperativen Programmen Einf. Progr. (WS 08/09) 399 Ressourcenbedarf von Algorithmen Algorithmen

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

3.3 Laufzeit von Programmen

3.3 Laufzeit von Programmen 3.3 Laufzeit von Programmen Die Laufzeit eines Programmes T(n) messen wir als die Zahl der Befehle, die für die Eingabe n abgearbeitet werden Betrachten wir unser Programm zur Berechnung von Zweierpotenzen,

Mehr

Theoretische Informatik 1 1. Wintersemester 2017/18. Herzlich willkommen!

Theoretische Informatik 1 1. Wintersemester 2017/18. Herzlich willkommen! Theoretische Informatik 1 1 Wintersemester 2017/18 Herzlich willkommen! 1 basierend auf Folien von Prof. Georg Schnitger und Prof. Ulrich Meyer 2. November 2017 1 / 90 Wer ist wer? Wir: Professur für Algorithmen

Mehr

Datenstrukturen 1. Herzlich willkommen!

Datenstrukturen 1. Herzlich willkommen! Datenstrukturen 1 Sommersemester 2017 Herzlich willkommen! 1 Basierend auf Folien von Prof. Georg Schnitger, Prof. Ulrich Meyer, Dr. Iganz Rutter 1 / 73 Wer ist wer? Wir: Martin Hoefer (Vorlesungen) R

Mehr

Notation für das asymptotische Verhalten von Funktionen

Notation für das asymptotische Verhalten von Funktionen Vorbemerkungen: Notation für das asymptotische Verhalten von Funktionen 1. Aussagen über die Komplexität von Algorithmen und von Problemen sollen (in der Regel) unabhängig von speziellen Maschinenmodellen

Mehr

Datenstrukturen. Sommersemester Herzlich willkommen!!!!!

Datenstrukturen. Sommersemester Herzlich willkommen!!!!! Datenstrukturen Sommersemester 2015 Herzlich willkommen!!!!! 1 / 77 Worum geht s? Einführung 2 / 77 Abstrakte Datentypen und Datenstrukturen Ein abstrakten Datentyp ist eine Sammlung von Operationen (auf

Mehr

Übung Algorithmen und Datenstrukturen

Übung Algorithmen und Datenstrukturen Übung Algorithmen und Datenstrukturen Sommersemester 2017 Marc Bux, Humboldt-Universität zu Berlin Organisatorisches Vorlesung: Montag 11 13 Uhr Ulf Leser RUD 26, 0 115 Mittwoch 11 13 Uhr Ulf Leser RUD

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. 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

WS 2009/10. Diskrete Strukturen

WS 2009/10. Diskrete Strukturen WS 2009/10 Diskrete Strukturen Prof. Dr. J. Esparza Lehrstuhl für Grundlagen der Softwarezuverlässigkeit und theoretische Informatik Fakultät für Informatik Technische Universität München http://www7.in.tum.de/um/courses/ds/ws0910

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

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

Algorithmen und Datenstrukturen Kapitel 2: Korrektheit von Algorithmen und Laufzeitanalyse rekursiver Algorithmen (mittels Rekurrenzgleichungen)

Algorithmen und Datenstrukturen Kapitel 2: Korrektheit von Algorithmen und Laufzeitanalyse rekursiver Algorithmen (mittels Rekurrenzgleichungen) Algorithmen und Datenstrukturen Kapitel 2: und Laufzeitanalyse rekursiver Algorithmen (mittels Rekurrenzgleichungen) Frank Heitmann heitmann@informatik.uni-hamburg.de 21. Oktober 2015 Frank Heitmann heitmann@informatik.uni-hamburg.de

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

Algorithmen 1 Tutorium

Algorithmen 1 Tutorium Algorithmen 1 Tutorium Tutorium 13 Misch Sadler 18. Juli 2011 INHALT: VIELES Übersicht 1 Dynamische Programmierung 2 Wiederholung 3 Klausuraufgaben 4 Ende Misch Sadler Algo 1 Tut 18. Juli 2011 2/21 Übersicht

Mehr

Algorithmen und Datenstrukturen Effizienz und Funktionenklassen

Algorithmen und Datenstrukturen Effizienz und Funktionenklassen Algorithmen und Datenstrukturen Effizienz und Funktionenklassen Matthias Teschner Graphische Datenverarbeitung Institut für Informatik Universität Freiburg SS 12 Lernziele der Vorlesung Algorithmen Sortieren,

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

Algorithmen und Datenstrukturen Kapitel 2: Korrektheit von Algorithmen und Laufzeitanalyse rekursiver Algorithmen (mittels Rekurrenzgleichungen)

Algorithmen und Datenstrukturen Kapitel 2: Korrektheit von Algorithmen und Laufzeitanalyse rekursiver Algorithmen (mittels Rekurrenzgleichungen) Algorithmen und Datenstrukturen Kapitel 2: und Laufzeitanalyse rekursiver Algorithmen (mittels ) Frank Heitmann heitmann@informatik.uni-hamburg.de 21. Oktober 2015 Frank Heitmann heitmann@informatik.uni-hamburg.de

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

Algorithmen und Datenstrukturen 1 Kapitel 5

Algorithmen und Datenstrukturen 1 Kapitel 5 Algorithmen und Datenstrukturen 1 Kapitel 5 Technische Fakultät robert@techfak.uni-bielefeld.de Vorlesung, U. Bielefeld, Winter 2005/2006 Kapitel 5: Effizienz von Algorithmen 5.1 Vorüberlegungen Nicht

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

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

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

Übungsklausur Algorithmen I

Übungsklausur Algorithmen I Jun.-Prof. Hofheinz, Jun.-Prof. Meyerhenke (ITI, KIT) 08.06.2015 Übungsklausur Algorithmen I Aufgabe 1. (Algorithm Engineering) Nennen Sie zwei Konzepte, die Algorithm Engineering im Gegensatz zu theoretischer

Mehr

Heapsort. Erstellung eines Heaps

Heapsort. Erstellung eines Heaps Heapsort Beispiel für einen eleganten Algorithmus, der auf einer effizienten Datenstruktur (dem Heap) beruht [Williams, 1964] Daten liegen in einem Array der Länge n vor 1. Erstelle aus dem gegebenen Array

Mehr

Heapsort. 1. Erstelle aus dem gegebenen Array einen Heap (DownHeap) 2. Tausche erstes und letztes Element des Arrays

Heapsort. 1. Erstelle aus dem gegebenen Array einen Heap (DownHeap) 2. Tausche erstes und letztes Element des Arrays Heapsort Beispiel für einen eleganten Algorithmus, der auf einer effizienten Datenstruktur (dem Heap) beruht [Williams, 1964] Daten liegen in einem Array der Länge n vor 1. Erstelle aus dem gegebenen Array

Mehr

Zunächst ein paar einfache "Rechen"-Regeln: Lemma, Teil 1: Für beliebige Funktionen f und g gilt:

Zunächst ein paar einfache Rechen-Regeln: Lemma, Teil 1: Für beliebige Funktionen f und g gilt: Der Groß-O-Kalkül Zunächst ein paar einfache "Rechen"-Regeln: G. Zachmann Informatik 1 - WS 05/06 Komplexität 22 Additionsregel Lemma, Teil 1: Für beliebige Funktionen f und g gilt: Zu beweisen: nur das

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

Klausur Algorithmen und Datenstrukturen

Klausur Algorithmen und Datenstrukturen Technische Universität Braunschweig Wintersemester 2014/2015 Institut für Betriebssysteme und Rechnerverbund Abteilung Algorithmik Prof. Dr. Sándor P. Fekete Dr. Christian Scheffer Klausur Algorithmen

Mehr

V. Claus, Juli 2005 Einführung in die Informatik II 45

V. Claus, Juli 2005 Einführung in die Informatik II 45 Um die Größenordnung einer reellwertigen oder ganzzahligen Funktion zu beschreiben, verwenden wir die so genannten Landau-Symbole (nach dem deutschen Mathematiker Edmund Landau, 1877-1938). Hierbei werden

Mehr

Informatik II. Algorithmen und Datenstrukturen. Vorläufige Version 1 c 2002 Peter Thiemann

Informatik II. Algorithmen und Datenstrukturen. Vorläufige Version 1 c 2002 Peter Thiemann Informatik II Algorithmen und Datenstrukturen Vorläufige Version 1 c 2002 Peter Thiemann 1 Einführung 1.1 Inhalt Wichtige Datentypen und ihre Implementierung (Datenstrukturen) Operationen auf Datenstrukturen

Mehr

Auswählen nach Rang (Selektion)

Auswählen nach Rang (Selektion) Auswählen nach Rang (Selektion) Geg.: Folge X von n Schlüsseln, eine Zahl k mit k n Ges.: ein k-kleinster Schlüssel von X, also den Schlüssel x k für X sortiert als x x 2 L x n trivial lösbar in Zeit O(kn)

Mehr

Algorithmen und Datenstrukturen II. Arne Schmidt Übung #

Algorithmen und Datenstrukturen II. Arne Schmidt Übung # Algorithmen und Datenstrukturen II Arne Schmidt Übung #1 18.04.2018 Übersicht Organisation Sortierverfahren Hausaufgaben: Programmierteil Datenverarbeitung Organisation Homepage: https://www.ibr.cs.tu-bs.de/courses/ss18/aud2/

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 Wiederholung: Validation Validation: nicht-formaler

Mehr

Informatik II. 1. Einführung. Ziele der Vorlesung. Inhalte der Vorlesung. Vorlesung am D-BAUG der ETH Zürich

Informatik II. 1. Einführung. Ziele der Vorlesung. Inhalte der Vorlesung. Vorlesung am D-BAUG der ETH Zürich Informatik II Vorlesung am D-BAUG der ETH Zürich 1. Einführung Felix Friedrich & Hermann Lehner Algorithmen und Datenstrukturen, erstes Beispiel FS 2018 1 23 Ziele der Vorlesung Inhalte der Vorlesung Verständnis

Mehr

Datenstrukturen. Mariano Zelke. Sommersemester 2012

Datenstrukturen. Mariano Zelke. Sommersemester 2012 Datenstrukturen Mariano Zelke Sommersemester 2012 Mariano Zelke Datenstrukturen 2/19 Das Teilfolgenproblem: Algorithmus A 3 A 3 (i, j bestimmt den Wert einer maximalen Teilfolge für a i,..., a j. (1 Wenn

Mehr

in eine Folge ai, so daß bezgl. einer Ordnung gilt: a a, j < n

in eine Folge ai, so daß bezgl. einer Ordnung gilt: a a, j < n 6. Sortieren Umordnen von Objekten a in eine Folge ai,..., ai n, so daß bezgl. einer Ordnung gilt: a a, j < n Begriffe: ij i j + ) Stabilität : Ein Sortierverfahren heißt stabil, falls die relative Reihenfolge

Mehr

2. Hausübung Algorithmen und Datenstrukturen

2. Hausübung Algorithmen und Datenstrukturen Prof. Dr. Gerd Stumme, Folke Eisterlehner, Dominik Benz Fachgebiet Wissensverarbeitung 7.4.009. Hausübung Algorithmen und Datenstrukturen Sommersemester 009 Abgabetermin: Montag, 04.05.009, 10:00 Uhr 1

Mehr

Programmieren I. Kapitel 7. Sortieren und Suchen

Programmieren I. Kapitel 7. Sortieren und Suchen Programmieren I Kapitel 7. Sortieren und Suchen Kapitel 7: Sortieren und Suchen Ziel: Varianten der häufigsten Anwendung kennenlernen Ordnung Suchen lineares Suchen Binärsuche oder Bisektionssuche Sortieren

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

Präsenzübung Datenstrukturen und Algorithmen SS 2014

Präsenzübung Datenstrukturen und Algorithmen SS 2014 Prof. aa Dr. E. Ábrahám F. Corzilius, S. Schupp, T. Ströder Präsenzübung Datenstrukturen und Algorithmen SS 2014 Vorname: Nachname: Studiengang (bitte genau einen markieren): Informatik Bachelor Informatik

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

Algorithmen I. Tutorium 1-3. Sitzung. Dennis Felsing

Algorithmen I. Tutorium 1-3. Sitzung. Dennis Felsing Algorithmen I Tutorium 1-3. Sitzung Dennis Felsing dennis.felsing@student.kit.edu www.stud.uni-karlsruhe.de/~ubcqr/algo 2011-05-02 Überblick 1 Sortieren und Suchen 2 Mastertheorem 3 Datenstrukturen 4 Kreativaufgabe

Mehr

Ordnen Sie die folgenden Funktionen nach ihrer asymptotischer Komplexität in aufsteigender Reihenfolge: i=1 4i + n = 4 n. i=1 i + 3n = 4 ( n(n+1)

Ordnen Sie die folgenden Funktionen nach ihrer asymptotischer Komplexität in aufsteigender Reihenfolge: i=1 4i + n = 4 n. i=1 i + 3n = 4 ( n(n+1) für Informatik Prof. aa Dr. Ir. Joost-Pieter Katoen Christian Dehnert, Friedrich Gretz, Benjamin Kaminski, Thomas Ströder Tutoraufgabe (Asymptotische Komplexität): Ordnen Sie die folgenden Funktionen nach

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 1

Algorithmen und Datenstrukturen 1 Algorithmen und Datenstrukturen 1 6. Vorlesung Martin Middendorf / Universität Leipzig Institut für Informatik middendorf@informatik.uni-leipzig.de studla@bioinf.uni-leipzig.de Merge-Sort Anwendbar für

Mehr

Informatik II. 1. Einführung. Inhalte der Vorlesung. Ziele der Vorlesung. Vorlesung am D-BAUG der ETH Zürich

Informatik II. 1. Einführung. Inhalte der Vorlesung. Ziele der Vorlesung. Vorlesung am D-BAUG der ETH Zürich Informatik II Vorlesung am D-BAUG der ETH Zürich 1. Einführung Felix Friedrich & Hermann Lehner Algorithmen und Datenstrukturen, Korrektheit, erstes Beispiel FS 2019 1 2 Ziele der Vorlesung Inhalte der

Mehr

Algorithmen und Datenstrukturen (für ET/IT)

Algorithmen und Datenstrukturen (für ET/IT) Algorithmen und Datenstrukturen (für ET/IT) Wintersemester 2012/13 Dr. Tobias Lasser Computer Aided Medical Procedures Technische Universität München Programm heute 1 Einführung 2 Mathematische Grundlagen

Mehr

Algorithmen und Datenstrukturen 1-1. Seminar -

Algorithmen und Datenstrukturen 1-1. Seminar - Algorithmen und Datenstrukturen 1-1. Seminar - Dominic Rose Bioinformatics Group, University of Leipzig Wintersemester 2009/10 Inhalt der ersten beiden Vorlesungen Algorithmenbegriff Komplexität, Asymptotik

Mehr

Einführung in die Programmierung I. 6. Sortieren. Stefan Zimmer

Einführung in die Programmierung I. 6. Sortieren. Stefan Zimmer Einführung in die Programmierung I 6. Sortieren Stefan Zimmer 26.11.2007 2 Sortieren Gegeben seien n Dinge ai, 1 i n, und eine Vergleichsoperation (z.b. Zahlen und

Mehr

Datenstrukturen und Algorithmen (SS 2013) Prof. Dr. Leif Kobbelt Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael Kremer

Datenstrukturen und Algorithmen (SS 2013) Prof. Dr. Leif Kobbelt Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael Kremer Präsenzübung Datenstrukturen und Algorithmen (SS 2013) Prof. Dr. Leif Kobbelt Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael Kremer Dienstag, 28. Mai 2013 Nachname: Vorname: Matrikelnummer: Studiengang:

Mehr

Grundlegende Sortieralgorithmen

Grundlegende Sortieralgorithmen Grundlegende Sortieralgorithmen Prof. Dr. Christian Böhm in Zusammenarbeit mit Gefei Zhang http://www.dbs.ifi.lmu.de/lehre/nfinfosw WS 07/08 2 Ziele Grundlegende Sortieralgorithmen auf Reihungen kennen

Mehr

Informatik II. Vorlesung am D-BAUG der ETH Zürich. Felix Friedrich & Hermann Lehner FS 2018

Informatik II. Vorlesung am D-BAUG der ETH Zürich. Felix Friedrich & Hermann Lehner FS 2018 1 Informatik II Vorlesung am D-BAUG der ETH Zürich Felix Friedrich & Hermann Lehner FS 2018 23 1. Einführung Algorithmen und Datenstrukturen, erstes Beispiel 24 Ziele der Vorlesung Verständnis des Entwurfs

Mehr

Übung Algorithmen und Datenstrukturen

Übung Algorithmen und Datenstrukturen Übung Algorithmen und Datenstrukturen Sommersemester 2015 Marc Bux, Humboldt-Universität zu Berlin Organisation Vorlesung: Montag 11 13 Uhr Ulf Leser RUD 26, 0 115 Mittwoch 11 13 Uhr Ulf Leser RUD 26,

Mehr

Stud.-Nummer: Datenstrukturen & Algorithmen Seite 1

Stud.-Nummer: Datenstrukturen & Algorithmen Seite 1 Stud.-Nummer: Datenstrukturen & Algorithmen Seite Aufgabe. / 6 P Instruktionen: ) In dieser Aufgabe sollen Sie nur die Ergebnisse angeben. Diese können Sie direkt bei den Aufgaben notieren. 2) Sofern Sie

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

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen 11. Übung Verkettete Listen, Sortieren Insertionsort, Mergesort, Radixsort, Quicksort Clemens Lang Übungen zu AuD 19. Januar 2010 Clemens Lang (Übungen zu AuD) Algorithmen

Mehr

Übersicht. Datenstrukturen und Algorithmen. Übersicht. Heaps. Vorlesung 8: Heapsort (K6) Joost-Pieter Katoen. 7. Mai 2015

Übersicht. Datenstrukturen und Algorithmen. Übersicht. Heaps. Vorlesung 8: Heapsort (K6) Joost-Pieter Katoen. 7. Mai 2015 Datenstrukturen und Algorithmen Vorlesung 8: (K6) 1 Joost-Pieter Katoen Lehrstuhl für Informatik Software Modeling and Verification Group http://moves.rwth-aachen.de/teaching/ss-15/dsal/ 7. Mai 015 3 Joost-Pieter

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

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

FAKULTÄT FÜR INFORMATIK

FAKULTÄT FÜR INFORMATIK TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK Lehrstuhl für Effiziente Algorithmen SS 2008 Grundlagen: Algorithmen und Datenstrukturen Midterm-Klausur Prof. Dr. Christian Scheideler, Dr. Stefan

Mehr

, i =, i 2 = 1 2. f (n)

, i =, i 2 = 1 2. f (n) Laufzeitanalyse Einige Formeln: n c i = cn+1 n n 1 c 1, für c 1 n(n + 1), i =, i = 1 i=0 i=0 3 n3 + 1 n + 1 6 n i=0 O-Notation: f = O(g) c > 0 n 0 > 0 n n 0 : f (n) c g(n) f = Ω(g) g = O( f ) f = Θ(g)

Mehr

Datenstrukturen und Algorithmen (SS 2013)

Datenstrukturen und Algorithmen (SS 2013) Datenstrukturen und Algorithmen (SS 2013) Präsenzübung Musterlösung Dienstag, 28.05.2013 Aufgabe 1 (Allgemeine Fragen [20 Punkte]) 1. Tragen Sie in der folgenden Tabelle die Best-, Average- und Worst-Case-

Mehr

Algorithmen und Datenstrukturen Tutorium I

Algorithmen und Datenstrukturen Tutorium I Algorithmen und Datenstrukturen Tutorium I 20. - 25. 04. 2016 AlgoDat - Tutorium I 1 1 Organisatorisches Kontakt 2 Landau-Notation Definiton von O Logarithmen Gesetze & Ableitung Satz von l Hôpital 3 Algorithmen

Mehr

Komplexität von Algorithmen OOPM, Ralf Lämmel

Komplexität von Algorithmen OOPM, Ralf Lämmel Ganz schön komplex! Komplexität von Algorithmen OOPM, Ralf Lämmel 885 Motivierendes Beispiel Algorithmus Eingabe: ein Zahlen-Feld a der Länge n Ausgabe: Durchschnitt Fragen: sum = 0; i = 0; while (i

Mehr

es gibt Probleme, die nicht berechenbar sind (z.b. Menge aller Funktionen N N und die Menge aller Sprachen sind überabzählbar)

es gibt Probleme, die nicht berechenbar sind (z.b. Menge aller Funktionen N N und die Menge aller Sprachen sind überabzählbar) Komplexitätstheorie es gibt Probleme, die nicht berechenbar sind (z.b. Menge aller Funktionen N N und die Menge aller Sprachen sind überabzählbar) andere Probleme sind im Prinzip berechenbar, möglicherweise

Mehr