Algorithmen und Datenstrukturen Effizienz und Funktionenklassen

Größe: px
Ab Seite anzeigen:

Download "Algorithmen und Datenstrukturen Effizienz und Funktionenklassen"

Transkript

1 Algorithmen und Datenstrukturen Effizienz und Funktionenklassen Matthias Teschner Graphische Datenverarbeitung Institut für Informatik Universität Freiburg SS 12

2 Lernziele der Vorlesung Algorithmen Sortieren, Suchen, Optimieren Datenstrukturen Repräsentation von Daten Listen, Stapel, Schlangen, Bäume Techniken zum Entwurf von Algorithmen Algorithmenmuster Greedy, Backtracking, Divide-and-Conquer Analyse von Algorithmen Korrektheit, Effizienz

3 Analyse von Algorithmen Korrektheit Ein korrekter Algorithmus stoppt (terminiert) für jede Eingabeinstanz mit der durch die Eingabe-Ausgabe-Relation definierten Ausgabe. Ein inkorrekter Algorithmus stoppt nicht oder stoppt mit einer nicht durch die Eingabe-Ausgabe-Relation vorgegebenen Ausgabe. Effizienz Bedarf an Speicherplatz und Rechenzeit Wachstum (Wachstumsgrad, Wachstumsrate) der Rechenzeit bei steigender Anzahl der Eingabe-Elemente (Laufzeitkomplexität)

4 Überblick Kontext Einführung Funktionenklasse Θ Definition, Illustration, Beispiele weitere Funktionenklassen Definition, Illustration, Beispiele Anwendung in der Laufzeitbeschreibung

5 Effizienz Bedeutung der Effizienz eines Algorithmus durch Begrenztheit von Ressourcen gegeben Sortieralgorithmus A benötigt Schritte für n Elemente Sortieralgorithmus B benötigt nlog 2 n Schritte für n Elemente Computer 1: 10 9 Schritte / s, Computer 2: 10 7 Schritte / s Eingabegröße: 10 6 Elemente Laufzeit: Algorithmus A Algorithmus B Computer 1 17 min 0.02 s Computer 2 2 d 8 h 2 s n 2

6 Effizienz Laufzeitkomplexität dominiert die benötigte Berechnungszeit für große Eingaben durch Hard- und Software bedingte Unterschiede weniger entscheidend Anmerkung: Speicherbedarf oder Kommunikationsbandbreite können auch bei der Effizienzanalyse relevant sein. Fokus auf Laufzeitkomplexität eines Algorithmus

7 Überblick Kontext Einführung Funktionenklasse Θ Definition, Illustration, Beispiele weitere Funktionenklassen Definition, Illustration, Beispiele Anwendung in der Laufzeitbeschreibung

8 Maschinenmodell Maschine mit wahlfreiem Speicherzugriff (RAM) mit einem Prozessor Speicherhierarchie wird vernachlässigt (z. B. Cache) kann Algorithmus als Programm ausführen Schritte eines Algorithmus sind zeitkonstante Anweisungen werden in konstanter Zeit ausgeführt Laufzeit unabhängig von der Eingabe Laufzeitunterschiede einzelner Schritte werden vernachlässigt. Addieren, Runden, Kopieren, bedingte Verzweigung, Aufruf eines Unterprogramms Sortieren ist kein Schritt (sinnvolle Definition von Schritten!)

9 Analyse der Laufzeiteffizienz Laufzeit hängt von der Komplexität der Eingabemenge ab oft die Anzahl der Elemente n Laufzeit wird oft durch eine Funktion der Anzahl der Eingabeelemente f (n) beschrieben Laufzeit von Algorithmus 1: Laufzeit von Algorithmus 2: f 1 (n)=n 7 5 +n+7 f 2 (n)=2n n+10 Wie vergleicht man die Effizienz der Algorithmen?

10 Analyse der Laufzeiteffizienz Zahl der Schritte (Laufzeit [s]) f2 (n)=2n n+10 Zahl der Schritte (Laufzeit [s]) f 1 (n)=n 7 5 +n+7 f 1 (n)=n 7 5 +n+7 f 2 (n)=2n n+10 Anzahl der Eingabeelemente n Anzahl der Eingabeelemente n entscheidend ist das Verhalten für große Eingaben

11 Wachstumsrate Üblicherweise interessiert nur der Term höchster Ordnung. Terme niedriger Ordnung werden ignoriert. Konstante Faktoren werden ignoriert. f 1 (n)=n 7 5 +n+7 f 2 (n)=2n n+10 n n 6 Wachstumsrate n 7 6 n 7 5 Algorithmus 2 ist effizienter als Algorithmus 1. asymptotisches Verhalten (Wie verhält sich die Funktion für Eingabegrößen gegen unendlich?)

12 Asymptotische Analyse Methode zur Einschätzung des Grenzverhaltens einer Funktion (bei uns Laufzeitverhalten für wachsende Eingabegrößen) Fokus auf den wesentlichen Trend des Grenzverhaltens ermöglicht die Einordnung von Funktionen in Funktionenklassen Beispielsweise können die Landau-Symbole Θ, Ο, Ω verwendet werden, um Klassen von Funktionen zu beschreiben. Funktionenklassen werden zur Beschreibung von Laufzeit bzw. Komplexität von Algorithmen verwendet (aymptotische Effizienz eines Algorithmus).

13 Überblick Kontext Einführung Funktionenklasse Θ Definition, Illustration, Beispiele weitere Funktionenklassen Definition, Illustration, Beispiele Anwendung in der Laufzeitbeschreibung

14 Landau-Symbol Θ f Θ(g): c 1 >0 c 2 >0 n 0 n>n 0 : c 1 g(n) f(n) c 2 g(n) f und g sind Funktionen, die Laufzeiten beschreiben: f, g: N R + f ist Element der Menge Theta von g, wenn zwei positive Konstanten c 1 und c 2 existieren, sodass der Funktionswert f(n) ab einem bestimmten n=n 0 immer zwischen c 1 g(n) und c 2 g(n) liegt. Wie sich f und g für n<n 0 verhalten, spielt keine Rolle. Anschaulich: f wächst genauso schnell wie g.

15 Illustration Zahl der Schritte (Laufzeit [s]) f Θ(g) c 2 g(n) f(n) c 1 g(n) n 0 n f und g haben die gleiche Größenordnung.

16 Beispiel f 1 (n)= 1 2 n2 +3n f 1 Θ(n 2 )? Existieren c 1, c 2, und n 0, sodass für n>n 0 gilt: c 1 n n2 +3n c 2 n 2?

17 Beispiel c n c 2 n Für : und n n 1 2 =c 1 n=1 Für : = 7 2 =c n2 +3n Θ(n 2 ), dafuern 1gilt: 1 2 n2 1 2 n2 +3n 7 2 n2

18 Beispiel Zahl der Schritte (Laufzeit [s]) 7 2 n2 c2=7/2 hätte man auch kleiner oder größer wählen können, spielt aber keine Rolle. 1 2 n2 +3n 1 2 n2 c1=1/2 hätte man auch kleiner wählen können, spielt aber keine Anzahl der Eingabeelemente n Rolle. c1 hätte nicht größer gewählt werden können, aber auch egal.

19 Beispiel f 1 (n)=n 3 f 1 Θ(n 2 )? Existieren c 1, c 2, und n 0, sodass für n>n 0 gilt: c 1 n 2 n 3 c 2 n 2? Für jedes c 2 existiert ein n mit n>c 2. c 1 n c 2 n 3 / Θ(n 2 )

20 Noch mehr Beispiele Es interessiert nur der Term höchster Ordnung, der am schnellsten wachsende Summand Terme niedriger Ordnung und Konstanten werden ignoriert. 2 n 2 +7 n 20 Θ(n 2 ) 2 n 2 +7 nlogn 20 Θ(n 2 ) 7 nlogn 20 / Θ(n 2 ) 5 / Θ(n 2 ) 2 n 2 +7 nlogn+n 3 / Θ(n 2 ) Laufzeit eines Algorithmus wird über Funktionenklasse beschrieben.

21 Typische Funktionenklassen zur Effizienzbeschreibung f Θ(1) f Θ(logn)=Θ(log 2 n) f Θ(n) f Θ(nlogn) f Θ(n 2 ) f Θ(n 3 ) f Θ(n k ) f Θ(2 n ) zeitkonstant, f ist beschränkt logarithmisch wachsende Funktionen linear wachsende Funktionen n-log-n wachsend, superlinear quadratisch wachsende Funktionen kubisch wachsende Funktionen polynomiell wachsende Funktionen exponentiell wachsende Funktionen

22 Praktische Relevanz der Funktionenklassen 1 Rechenschritt benötigt 0.001s Laufzeit / Komplexität Maximale Problemgröße bei gegebener Rechenzeit und Laufzeitkomplexität 1 Sekunde 1 Minute 1 Stunde n n n n

23 Praktische Relevanz der Funktionenklassen Rechner B 10fach schneller als Rechner A Maximale Problemgröße auf Rechner B bei gegebener Problemgröße p auf Rechner A Laufzeit / Problemgröße Komplexität auf Rechner B n 10 p n p n p 2 n p = p + log p =2 log p =2 p+log 2 10 Polynomielle Laufzeiten erlauben die Bearbeitung einer um einen Faktor größeren Problemgröße bei schnellerer Hard- / Software. Exponentielle Laufzeiten nicht.

24 Kurz zum Logarithmus Logarithmen lösen Gleichungen der Form bei gegebenen a und b: n=log b a a=b n Bezeichnungen: log e a=lna log 10 a=lga log 2 a=lda loga bei ist die Basis aus dem Kontext klar, bei uns oft 2

25 Illustration Zahl der Schritte (Laufzeit [s]) 2 6 = 64 log 2 n log e n 10 2 = 100 log 10 n Anzahl der Eingabeelemente n

26 Einige Rechenregeln Umkehrfunktionen b log b n =n log b (b n )=n Produktregel log b (m n)=log b m+log b n Potenzregel log b (n r )=r log b n Basisumrechnung log a n=log a blog b n konstant Θ(logn)=Θ(log b n) log 2 (256)=log =8 daher für beliebige Basis b und wir sind wieder beim Thema.

27 Zusammenfassung zu Θ Θ(g) f Θ(g) beschreibt eine Klasse von Funktionen, wenn f bis auf einen konstanten Faktor gleich schnell wächst wie g g ist eine asymptotisch scharfe obere und untere Schranke von f f wird einer Funktionenklasse g zugeordnet, indem nur der Term höchster Ordnung betrachtet wird (der am schnellsten wachsende Summand) Terme niedriger Ordnung und Konstanten ignoriert werden Beispiele: 2 n 2 +7 n 20 Θ(n 2 ) 7 nlogn 20 Θ(nlogn)

28 Überblick Kontext Einführung Funktionenklasse Θ Definition, Illustration, Beispiele weitere Funktionenklassen Definition, Illustration, Beispiele Anwendung in der Laufzeitbeschreibung

29 Landau-Symbol O Wenn eine Funktion nicht von oben und von unten beschränkt wird, sondern nur von oben (obere asymptotische Schranke), dann wird O verwendet. f O(g): c>0 n 0 n>n 0 :f(n) c g(n) f ist Element der Menge Gross-O von g, wenn eine positive Konstante c existiert, sodass der Funktionswert f(n) ab einem bestimmten n=n 0 immer kleiner oder gleich c g(n) ist. Wie sich f und g für n<n 0 verhalten, spielt keine Rolle. Anschaulich: f(n) wächst höchstens so schnell wie g(n) bzw. c g(n).

30 Illustration Zahl der Schritte (Laufzeit [s]) c g(n) f 1 (n) O(g) f 2 (n) O(g) n 2 n 1 n f ist höchstens von der Größenordnung von g.

31 Beispiele Es interessiert nur der Term höchster Ordnung, der am schnellsten wachsende Summand Terme niedriger Ordnung und Konstanten werden ignoriert. f(n) muss nur von oben durch c g(n) beschränkt sein. 2 n 2 +7 n 20 O(n 2 ) 2 n 2 +7 nlogn 20 O(n 2 ) 7 nlogn 20 O(n 2 ) 5 O(n 2 ) 2 n 2 +7 nlogn+n 3 / O(n 2 )

32 Landau-Symbol Ω Wenn eine Funktion nicht von oben und von unten beschränkt wird, sondern nur von unten (untere asymptotische Schranke), dann wird Ω verwendet. f Ω(g): c>0 n 0 n>n 0 :f(n) c g(n) f ist Element der Menge Gross- Ω von g, wenn eine positive Konstante c existiert, sodass der Funktionswert f(n) ab einem bestimmten n=n 0 immer größer oder gleich c g(n) ist. Wie sich f und g für n<n 0 verhalten, spielt keine Rolle. Anschaulich: f(n) wächst mindestens so schnell wie g(n) bzw. c g(n).

33 Illustration Zahl der Schritte (Laufzeit [s]) f 1 (n) Ω(g) f 2 (n) Ω(g) c g(n) n 2 n 1 n f ist mindestens von der Größenordnung von g.

34 Beispiele Es interessiert nur der Term höchster Ordnung, der am schnellsten wachsende Summand Terme niedriger Ordnung und Konstanten werden ignoriert. f(n) muss nur von unten durch c g(n) beschränkt sein. 2 n 2 +7 n 20 Ω(n 2 ) 2 n 2 +7 nlogn 20 Ω(n 2 ) 7 nlogn 20 / Ω(n 2 ) 5 / Ω(n 2 ) 2 n 2 +7 nlogn+n 3 Ω(n 2 )

35 Landau-Symbole ο und ω asymptotisch nicht scharfe Schranken obere Schranke f o(g): c>0 n 0 n>n 0 :f(n) c g(n) f wächst langsamer als g (ist von kleinerer Größenordnung) 2 n o(n 2 ) 4 n 2 / o(n 2 ) untere Schranke f ω(g): c>0 n 0 n>n 0 :f(n) c g(n) f wächst schneller als g (ist von höherer Größenordnung) 2 n 3 ω(n 2 ) 4 n 2 / ω(n 2 )

36 Zusammenfassung O-Notation f Θ(g): c 1 >0 c 2 >0 n 0 n>n 0 :c 1 g(n) f(n) c 2 g(n) f O(g): c>0 n 0 n>n 0 :f(n) c g(n) f Ω(g): c>0 n 0 n>n 0 :f(n) c g(n) f o(g): c>0 n 0 n>n 0 :f(n) c g(n) f ω(g): c>0 n 0 n>n 0 :f(n) c g(n)

37 Zusammenfassung Eigenschaften Transitivität f Θ(g) g Θ(h) f Θ(h) f O(g) g O(h) f O(h) f Ω(g) g Ω(h) f Ω(h) f o(g) g o(h) f o(h) f ω(g) g ω(h) f ω(h) Reflexivität f Θ(f) f Ω(f) f O(f) Symmetrie f Θ(g) g Θ(f) Austausch-Symmetrie f O(g) g Ω(f) f o(g) g ω(f)

38 Überblick Kontext Einführung Funktionenklasse Θ Definition, Illustration, Beispiele weitere Funktionenklassen Definition, Illustration, Beispiele Anwendung in der Laufzeitbeschreibung

39 Uns reicht oft O Laufzeiten werden oft mit O beschrieben (Vernachlässigung der unteren Schranke). f =O(g) f O(g) Oft wird statt geschrieben. f =O(h) g=o(h) f+g=o(h) a k n k +a k 1 n k a 1 n+a 0 =O(n k ) f(n)=c g(n) f=o(g)

40 O-Kalkül Einfache Regeln f =O(f) O(O(f))=O(f) ko(f)=o(f) O(f+k)=O(f) Addition O(f)+O(g)=O(max{f,g}) Multiplikation O(f) O(g)=O(f g)

41 Zusammenfassung Werkzeuge zur Analyse der Effizienz von Algorithmen Effizienz, Laufzeitkomplexität: Wachstum (Wachstumsgrad, Wachstumsrate) der Rechenzeit bei steigender Anzahl der Eingabe-Elemente Beschreibung der asymptotischen Effizienz durch Funktionenklassen Konzentration auf das Wesentliche bei der Laufzeitbeschreibung Landau-Symbole O zur Beschreibung von asymptotisch scharfen bzw. nicht scharfen Schranken für die Beschreibung der Laufzeitkomplexität zur Beschreibung oberer asymptotischer Schranken von Laufzeiten

42 Nächstes Thema Analyse von Algorithmen Abschätzung der Laufzeit von Algorithmen

Algorithmen und Datenstrukturen Laufzeitabschätzung

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

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

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

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

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

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

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

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

Ü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

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

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

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

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

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

Ü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

Algorithmen und Datenstrukturen I Grundlagen

Algorithmen und Datenstrukturen I Grundlagen Algorithmen und Datenstrukturen I Grundlagen Prof. Dr. Oliver Braun Letzte Änderung: 01.11.2017 14:15 Algorithmen und Datenstrukturen I, Grundlagen 1/24 Algorithmus es gibt keine präzise Definition Handlungsvorschrift

Mehr

Informatik I Komplexität von Algorithmen

Informatik I Komplexität von Algorithmen Leistungsverhalten von Algorithmen Informatik I Komplexität von Algorithmen G. Zachmann Clausthal University, Germany zach@in.tu-clausthal.de Speicherplatzkomplexität: Wird primärer & sekundärer Speicherplatz

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

Algorithmen und Datenstrukturen I. Grundlagen. Prof. Dr. Oliver Braun. Fakultät für Informatik und Mathematik Hochschule München

Algorithmen und Datenstrukturen I. Grundlagen. Prof. Dr. Oliver Braun. Fakultät für Informatik und Mathematik Hochschule München Algorithmen und Datenstrukturen I Fakultät für Informatik und Mathematik Hochschule München Letzte Änderung: 18.03.2018 18:16 Inhaltsverzeichnis Algorithmus..................................... 2 Problem

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

Datenstrukturen und Algorithmen (SS 2013)

Datenstrukturen und Algorithmen (SS 2013) Datenstrukturen und Algorithmen (SS 2013) Übungsblatt 4 Abgabe: Montag, 13.05.2013, 14:00 Uhr Die Übungen sollen in Gruppen von zwei bis drei Personen bearbeitet werden. Schreiben Sie die Namen jedes Gruppenmitglieds

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

Algorithmik Kap. 2: Laufzeit von Algorithmen

Algorithmik Kap. 2: Laufzeit von Algorithmen 1. Motivation 1.1 Fallstudie: Sortieralgorithmen 1.2 Fallstudie: Selektionsalgorithmen 2. Laufzeit von Algorithmen 2.1 Grundlagen 2.2 3. Paradigmen des Algorithmenentwurfs 3.1 Dynamisches Programmieren

Mehr

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

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

Mehr

2 Wachstumsverhalten von Funktionen

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

Mehr

Algorithmen und Datenstrukturen Zusammenfassung

Algorithmen und Datenstrukturen Zusammenfassung Algorithmen und Datenstrukturen Zusammenfassung Matthias Teschner Graphische Datenverarbeitung Institut für Informatik Universität Freiburg SS 12 Überblick Eigenschaften von Algorithmen Entwurfstechniken

Mehr

Datenstrukturen, Algorithmen und Programmierung 2

Datenstrukturen, Algorithmen und Programmierung 2 Datenstrukturen, Algorithmen und Programmierung 2 Professor Dr. Lehrstuhl für Algorithm Engineering, LS11 Fakultät für Informatik, TU Dortmund 2. VO SS 2009 16. April 2009 1 Überblick Asymptotische Schranken

Mehr

1. Asymptotische Notationen 2. Zahlentheoretische Algorithmen 3. Sortierverfahren 4. String Matching 5. Ausgewählte Datenstrukturen

1. Asymptotische Notationen 2. Zahlentheoretische Algorithmen 3. Sortierverfahren 4. String Matching 5. Ausgewählte Datenstrukturen Gliederung 1. Asymptotische Notationen 2. Zahlentheoretische Algorithmen 3. Sortierverfahren 4. String Matching 5. Ausgewählte Datenstrukturen 1/1, Folie 1 2009 Prof. Steffen Lange - HDa/FbI - Effiziente

Mehr

Kostenmodell. Daniel Graf, Tobias Pröger. 22. September 2016 (aktualisierte Fassung 5 vom 9. Oktober 2016)

Kostenmodell. Daniel Graf, Tobias Pröger. 22. September 2016 (aktualisierte Fassung 5 vom 9. Oktober 2016) Kostenmodell Daniel Graf, Tobias Pröger 22. September 2016 (aktualisierte Fassung 5 vom 9. Oktober 2016) Erklärung: Diese Mitschrift ist als Ergänzung zur Vorlesung gedacht. Wir erheben keinen Anspruch

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

Übersicht. Datenstrukturen und Algorithmen. Die Teile-und-Beherrsche-Methode. Übersicht. Vorlesung 3: Rekursionsgleichungen (K4)

Übersicht. Datenstrukturen und Algorithmen. Die Teile-und-Beherrsche-Methode. Übersicht. Vorlesung 3: Rekursionsgleichungen (K4) Datenstrukturen und Algorithmen Vorlesung 3: (K4) 1 e für rekursive Algorithmen Prof. Dr. Erika Ábrahám 2 Theorie Hybrider Systeme Informatik 2 http://ths.rwth-aachen.de/teaching/ss-14/ datenstrukturen-und-algorithmen/

Mehr

Komplexität. G. Zachmann Clausthal University, Germany Leistungsverhalten von Algorithmen

Komplexität. G. Zachmann Clausthal University, Germany Leistungsverhalten von Algorithmen lausthal Informatik II Komplexität von Algorithmen. Zachmann lausthal University, ermany zach@in.tu-clausthal.de Leistungsverhalten von Algorithmen Speicherplatzkomplexität: Wird primärer & sekundärer

Mehr

Einführung in die Programmierung

Einführung in die Programmierung Skript zur Vorlesung: Einführung in die Programmierung WiSe 2009 / 2010 Skript 2009 Christian Böhm, Peer Kröger, Arthur Zimek Prof. Dr. Christian Böhm Annahita Oswald Bianca Wackersreuther Ludwig-Maximilians-Universität

Mehr

UE Algorithmen und Datenstrukturen 1 UE Praktische Informatik 1. Übung 5. Asymptotische Laufzeitkomplexität Definition Regeln Beispiele

UE Algorithmen und Datenstrukturen 1 UE Praktische Informatik 1. Übung 5. Asymptotische Laufzeitkomplexität Definition Regeln Beispiele UE Algorithmen und Datenstrukturen 1 UE Praktische Informatik 1 Übung 5 Asymptotische Laufzeitkomplexität Definition Regeln Beispiele Institut für Pervasive Computing Johannes Kepler Universität Linz Altenberger

Mehr

Informatik I Komplexität von Algorithmen

Informatik I Komplexität von Algorithmen Informatik I Komplexität von Algorithmen G. Zachmann Clausthal University, Germany zach@in.tu-clausthal.de Leistungsverhalten von Algorithmen Speicherplatzkomplexität: Wird primärer & sekundärer Speicherplatz

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

Ü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

Ü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

Ü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

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

Übung Algorithmen und Datenstrukturen

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

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

Ü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

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 32 Einstieg in die Informatik mit Java Effizienz Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 32 1 Überblick: was ist Effizienz? 2 Landau-Symbole 3 Eier im Korb 4

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

Prof. Dr. Margarita Esponda

Prof. Dr. Margarita Esponda Analyse von Algorithmen Die O-Notation WS 2012/2013 Prof. Dr. Margarita Esponda Freie Universität Berlin 1 Korrekte und effiziente Lösung von Problemen Problem Wesentlicher Teil der Lösung eines Problems.

Mehr

Komplexität. G. Zachmann Clausthal University, Germany Leistungsverhalten von Algorithmen

Komplexität. G. Zachmann Clausthal University, Germany Leistungsverhalten von Algorithmen lausthal Informatik II Komplexität von Algorithmen. Zachmann lausthal University, ermany zach@tu-clausthal.de Leistungsverhalten von Algorithmen Speicherplatzkomplexität: Wird primärer & sekundärer Speicherplatz

Mehr

. Die obige Beschreibung der Laufzeit für ein bestimmtes k können wir also erweitern und erhalten die folgende Gleichung für den mittleren Fall:

. Die obige Beschreibung der Laufzeit für ein bestimmtes k können wir also erweitern und erhalten die folgende Gleichung für den mittleren Fall: Laufzeit von Quicksort im Mittel. Wir wollen die erwartete Effizienz von Quicksort ermitteln. Wir nehmen an, die Wahrscheinlichkeit, dass das gewählte Pivot-Element a j das k-t kleinste Element der Folge

Mehr

Übung Algorithmen & Datenstrukturen

Übung Algorithmen & Datenstrukturen Übung lgorithmen & Datenstrukturen SS 2016 Kim Völlinger Übungstermine: Montag 09:00-11:00 RUD 26, 1'303, Marc Bux Montag 13:00-15:00 RUD 26, 1'305, Marc Bux Montag 13:00-15:00 RUD 26, 1'303, Florian Tschorsch

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

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

Informatik I Komplexität von Algorithmen

Informatik I Komplexität von Algorithmen Leistungsverhalten von Algorithmen Informatik I Komplexität von Algorithmen G. Zachmann Clausthal University, Germany zach@in.tu-clausthal.de Speicherplatzkomplexität: Wird primärer & sekundärer Speicherplatz

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

Ü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

Rekursionen (Teschl/Teschl 8.1/8.2)

Rekursionen (Teschl/Teschl 8.1/8.2) Rekursionen (Teschl/Teschl 8.1/8.2) treten in vielen Algorithmen auf: Eine Rekursion ist eine Folge von Zahlen a 0, a 1, a 2,.., bei der jedes a n aus seinen Vorgängern berechnet wird: Beispiele a n =

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

Grundlagen: Algorithmen und Datenstrukturen

Grundlagen: Algorithmen und Datenstrukturen Technische Universität München Fakultät für Informatik Lehrstuhl für Effiziente Algorithmen Dr. Hanjo Täubig Jeremias Weihmann Sommersemester 2014 Übungsblatt 2 28. April 2014 Grundlagen: Algorithmen und

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

Komplexität von Algorithmen

Komplexität von Algorithmen Komplexität von Algorithmen Prof. Dr. Christian Böhm WS 07/08 in Zusammenarbeit mit Gefei Zhang http://www.dbs.informatik.uni-muenchen.de/lehre/nfinfosw Ressourcenbedarf - Größenordnungen Prozesse verbrauchen

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

Kapitel 3 Zur Korrektheit und Effizienz von Algorithmen

Kapitel 3 Zur Korrektheit und Effizienz von Algorithmen Kapitel 3 Zur Korrektheit und Effizienz von Algorithmen Ziel: Kurze Einführung in den Pseudocode zur Beschreibung von Algorithmen Induktionsbeweise als wichtiges Hilfsmittel, um die Korrektheit eines 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

Praktische Informatik I - Algorithmen und Datenstrukturen Wintersemester 2006/ Algorithmen und ihre formalen Eigenschaften, Datenstrukturen

Praktische Informatik I - Algorithmen und Datenstrukturen Wintersemester 2006/ Algorithmen und ihre formalen Eigenschaften, Datenstrukturen 1 Grundlagen 1.1 Algorithmen und ihre formalen Eigenschaften, Datenstrukturen Ein Algorithmus ist ein mit formalen Mitteln beschreibbares, mechanisch nachvollziehbares Verfahren zur Lösung einer Klasse

Mehr

3.2. Korrektheit und Komplexität am Beispiel: Sortieren Sortieren ist eine wichtige Basis-Operation für komplexe Algorithmen

3.2. Korrektheit und Komplexität am Beispiel: Sortieren Sortieren ist eine wichtige Basis-Operation für komplexe Algorithmen 3.2. Korrektheit und Komplexität am Beispiel: Sortieren Sortieren ist eine wichtige Basis-Operation für komplexe Algorithmen Sortierproblem Eingabe: Folge von n natürlichen Zahlen a 1, a 2,, a n, die Folge

Mehr

1 for ( int index = 0; index < n; index ++) { 3 if ( E[ index1 ] == K) { x++ }

1 for ( int index = 0; index < n; index ++) { 3 if ( E[ index1 ] == K) { x++ } Organisatorisches VL-02: Asymptotische Effizienz (Datenstrukturen und Algorithmen, SS 2017) Gerhard Woeginger Vorlesung: Gerhard Woeginger (Zimmer 4024 im E1) Sprechstunde: Mittwoch 11:15 12:00 Übungen:

Mehr

Grundlagen der Programmierung

Grundlagen der Programmierung GdP12 Slide 1 Grundlagen der Programmierung Vorlesung 12 Sebastian Iwanowski FH Wedel GdP12 Slide 2 Entwurf von Algorithmen Wie klassifiziert man Algorithmen? offensichtlich nicht durch die Unterscheidung

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

Die asymptotische Notation

Die asymptotische Notation 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 Die asymptotische Notation f, g : N R 0 seien

Mehr

Objektorientierte Programmierung VL: Prof. Dr. Marco Block-Berlitz - Freie Universität Berlin Proinformatik III

Objektorientierte Programmierung VL: Prof. Dr. Marco Block-Berlitz - Freie Universität Berlin Proinformatik III Objektorientierte Programmierung VL: Prof. Dr. Marco Block-Berlitz - Freie Universität Berlin Proinformatik III Text: Hinnerk van Bruinehsen - Grafiken: Jens Fischer powered by SDS.mint SoSe 2011 1 Teil

Mehr

Vorlesung Datenstrukturen

Vorlesung Datenstrukturen Vorlesung Datenstrukturen Einleitung und Grundlagen Maike Buchin 18.4.2017 Verantwortliche Dozentin Organisation der Übungen Übungsleiter Korrekteure Maike Buchin Maike.Buchin@rub.de Raum NA 1/70 Sprechzeiten:

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

Abgabe: (vor der Vorlesung) Aufgabe 2.1 (P) O-Notation Beweisen Sie die folgenden Aussagen für positive Funktionen f und g:

Abgabe: (vor der Vorlesung) Aufgabe 2.1 (P) O-Notation Beweisen Sie die folgenden Aussagen für positive Funktionen f und g: TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK Lehrstuhl für Sprachen und Beschreibungsstrukturen SS 2009 Grundlagen: Algorithmen und Datenstrukturen Übungsblatt 2 Prof. Dr. Helmut Seidl, S. Pott,

Mehr

Programmierung 1 (Wintersemester 2012/13) Lösungsblatt 10 (Kapitel 11)

Programmierung 1 (Wintersemester 2012/13) Lösungsblatt 10 (Kapitel 11) Fachrichtung 6.2 Informatik Universität des Saarlandes Tutorenteam der Vorlesung Programmierung 1 Programmierung 1 (Wintersemester 2012/13) Lösungsblatt 10 (Kapitel 11) Hinweis: Dieses Übungsblatt enthält

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

Theoretische Informatik 1

Theoretische Informatik 1 Theoretische Informatik 1 Teil 2 Bernhard Nessler Institut für Grundlagen der Informationsverabeitung TU Graz SS 2007 Übersicht 1 Codierung, Gödelisierung Paare, Tupel, Listen Überabzählbarkeit 2 Ist universell?

Mehr

F3 Berechenbarkeit und Komplexität

F3 Berechenbarkeit und Komplexität F3 Berechenbarkeit und Komplexität Berndt Farwer Fachbereich Informatik AB Theoretische Grundlagen der Informatik (TGI) Universität Hamburg farwer@informatik.uni-hamburg.de F3 01/02 p.1/70 Zielgruppe 1.

Mehr

1 Asymptotische Notation

1 Asymptotische Notation In diesem Kapitel wollen wir die Grundlagen der asymptotischen Notation vermitteln. Diese ist ein wichtiges Werkzeug zur Betrachtung der Effizienz eines Algorithmus. 1.1 Grundlagen und einleitende Beispiele

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Technische Universität München WiSe 2012/13 Institut für Informatik I-16 Lösungsblatt 7 Dr. Tobias Lasser 3. Dezember 2012 Jakob Vogel Algorithmen und Datenstrukturen Aufgabe 1 Rechnen mit Landau-Symbolen

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

( )= c+t(n-1) n>1. Stand der Vorlesung Komplexität von Algorithmen (Kapitel 3)

( )= c+t(n-1) n>1. Stand der Vorlesung Komplexität von Algorithmen (Kapitel 3) Stand der Vorlesung Komplexität von Algorithmen (Kapitel 3) Motivation: IT gestützte Steuerung, Überwachung, Fertigung, Produktion,. : erfordert effiziente Berechnungsvorschriften Ziel: Methoden kennen

Mehr

Babeș-Bolyai Universität Cluj Napoca Fakultät für Mathematik und Informatik Grundlagen der Programmierung MLG5005. Rekursion

Babeș-Bolyai Universität Cluj Napoca Fakultät für Mathematik und Informatik Grundlagen der Programmierung MLG5005. Rekursion Babeș-Bolyai Universität Cluj Napoca Fakultät für Mathematik und Informatik Grundlagen der Programmierung MLG5005 Rekursion Rekursion Neue Denkweise Wikipedia: Als Rekursion bezeichnet man den Aufruf

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

Stand der Vorlesung Komplexität von Algorithmen (Kapitel 3)

Stand der Vorlesung Komplexität von Algorithmen (Kapitel 3) Stand der Vorlesung Komplexität von Algorithmen (Kapitel 3) Technische Universität München Motivation: IT gestützte Steuerung, Überwachung, Fertigung, Produktion,. : erfordert effiziente Berechnungsvorschriften

Mehr

Algorithmen und Datenstrukturen (Th. Ottmann und P. Widmayer) Folien: Leistungsanalyse Autor: Stefan Edelkamp

Algorithmen und Datenstrukturen (Th. Ottmann und P. Widmayer) Folien: Leistungsanalyse Autor: Stefan Edelkamp Algorithmen und Datenstrukturen (Th. Ottmann und P. Widmayer) Folien: Leistungsanalyse Autor: Stefan Edelkamp Institut für Informatik Georges-Köhler-Allee Albert-Ludwigs-Universität Freiburg 1 Überblick

Mehr

2. Tag. Teil II. 1.5 Interpretation der Grenzwertregeln

2. Tag. Teil II. 1.5 Interpretation der Grenzwertregeln Teil II 2. Tag Die bisherige Darstellung war zwar weitgehend intuitiv, ist aber für Beweise über Komplexitätsaussagen nur bedingt geeignet. 1.5 Interpretation der Grenzwertregeln Für die Funktionen f,g

Mehr

Kapitel 3. Folgen Körper der reellen Zahlen. Wir kennen schon den Körper Q der rationalen Zahlen: : a, b Z, b 0}. Q = { a b

Kapitel 3. Folgen Körper der reellen Zahlen. Wir kennen schon den Körper Q der rationalen Zahlen: : a, b Z, b 0}. Q = { a b Kapitel 3. Folgen 3.1. Körper der reellen Zahlen Wir kennen schon den Körper Q der rationalen Zahlen: Q = { a b : a, b Z, b 0}. Die natürliche Ordnung auf Q ist eine totale Ordnung. Überdies gilt folgendes

Mehr

Der Sprung ins Wasser... Algorithmen und Datenstrukturen Kapitel 1 Algorithmen & Algorithmenanalyse. Und warum brauch ich das?! Organisatorisches 1

Der Sprung ins Wasser... Algorithmen und Datenstrukturen Kapitel 1 Algorithmen & Algorithmenanalyse. Und warum brauch ich das?! Organisatorisches 1 Der Sprung ins Wasser... Algorithmen und Datenstrukturen Kapitel 1 Algorithmen & Frank Heitmann heitmann@informatik.uni-hamburg.de Worum geht es bei Algorithmen und Datenstrukturen? 14. Oktober 2015 Frank

Mehr

Algorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2014 / Vorlesung 9, Donnerstag 18.

Algorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2014 / Vorlesung 9, Donnerstag 18. Algorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2014 / 2015 Vorlesung 9, Donnerstag 18. Dezember 2014 (Teile und Herrsche, Mastertheorem) Junior-Prof. Dr.

Mehr

Algorithmen und Datenstrukturen Kapitel 1 Algorithmen & Algorithmenanalyse

Algorithmen und Datenstrukturen Kapitel 1 Algorithmen & Algorithmenanalyse Algorithmen und Datenstrukturen Kapitel 1 Algorithmen & Frank Heitmann heitmann@informatik.uni-hamburg.de 14. Oktober 2015 Frank Heitmann heitmann@informatik.uni-hamburg.de 1/48 Der Sprung ins Wasser...

Mehr

Datenstrukturen und Algorithmen

Datenstrukturen und Algorithmen Datenstrukturen und Algorithmen Vorlesung am D-Math (CSE) der ETH Zürich 1. Einführung Felix Friedrich Überblick, Algorithmen und Datenstrukturen, Korrektheit, erstes FS 2019 1 19 Ziele des Kurses Verständnis

Mehr

Komplexität eines Algorithmus, Grössenordnung, Landau-Symbole, Beispiel einer Komplexitätsberechnung (Mergesort) 7. KOMPLEXITÄT

Komplexität eines Algorithmus, Grössenordnung, Landau-Symbole, Beispiel einer Komplexitätsberechnung (Mergesort) 7. KOMPLEXITÄT Komplexität eines Algorithmus, Grössenordnung, Landau-Symbole, Beispiel einer Komplexitätsberechnung (Mergesort) 7. KOMPLEXITÄT Komplexität eines Algorithmus Algorithmen verbrauchen Ressourcen Rechenzeit

Mehr

Algorithmen und Datenstrukturen Übung #4 BFS/DFS, Wachstum von Funktionen

Algorithmen und Datenstrukturen Übung #4 BFS/DFS, Wachstum von Funktionen Platzhalter für Bild, Bild auf Titelfolie hinter das Logo einsetzen Algorithmen und Datenstrukturen Übung #4 BFS/DFS, Wachstum von Funktionen Christian Rieck, Arne Schmidt 22.11.2018 Heute 12 Breiten-

Mehr

Kapitel ADS:II. II. Algorithm Engineering

Kapitel ADS:II. II. Algorithm Engineering Kapitel ADS:II II. Algorithm Engineering Problemklassen und Lösungsstrategien Phasen des Algorithm Engineering Exkurs: Programmiersprachen Pseudocode Rekursion Maschinenmodell Laufzeitanalyse Algorithmenimplementierung

Mehr

Algorithmen und Datenstrukturen Kapitel 1 Algorithmen & Algorithmenanalyse

Algorithmen und Datenstrukturen Kapitel 1 Algorithmen & Algorithmenanalyse Algorithmen und Datenstrukturen Kapitel 1 Algorithmen & Frank Heitmann heitmann@informatik.uni-hamburg.de 14. Oktober 2015 Frank Heitmann heitmann@informatik.uni-hamburg.de 1/48 Der Sprung ins Wasser...

Mehr

Kapitel 3: Sortierverfahren Gliederung

Kapitel 3: Sortierverfahren Gliederung Gliederung 1. Grundlagen 2. Zahlentheoretische Algorithmen 3. Sortierverfahren 4. Ausgewählte Datenstrukturen 5. Dynamisches Programmieren 6. Graphalgorithmen 7. String-Matching 8. Kombinatorische Algorithmen

Mehr

Kapitel 6. Komplexität von Algorithmen. Xiaoyi Jiang Informatik I Grundlagen der Programmierung

Kapitel 6. Komplexität von Algorithmen. Xiaoyi Jiang Informatik I Grundlagen der Programmierung Kapitel 6 Komplexität von Algorithmen 1 6.1 Beurteilung von Algorithmen I.d.R. existieren viele Algorithmen, um dieselbe Funktion zu realisieren. Welche Algorithmen sind die besseren? Betrachtung nicht-funktionaler

Mehr

Kapitel 5: Paradigmen des Algorithmenentwurfs. Gliederung

Kapitel 5: Paradigmen des Algorithmenentwurfs. Gliederung Gliederung 1. Grundlagen 2. Analyse der Laufzeit von Algorithmen 3. Untere Schranken für algorithmische Probleme 4. Sortier- und Selektionsverfahren 5. Paradigmen des Algorithmenentwurfs 6. Ausgewählte

Mehr