SS14 Algorithmen und Datenstrukturen Vorbemerkungen und 1. Kapitel

Ähnliche Dokumente
Algorithmen und Datenstrukturen 1. Vorlesung

SS10 Algorithmen und Datenstrukturen Vorbemerkungen und 1. Kapitel

Algorithmen und Datenstrukturen. Organisatorisches. Christian Komusiewicz Ernst-Abbe-Platz 2, R3315

Effiziente Algorithmen

Algorithmentheorie 1. Vorlesung

Algorithmentheorie 1. Vorlesung

Algorithmen und Datenstrukturen SS09

Algorithmen und Datenstrukturen

Algorithmen & Datenstrukturen

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen (AuD) Prof. Dr. Claudia Eckert und Dr. Thomas Stibor

NAME, VORNAME: Studiennummer: Matrikel:

Klausur Algorithmen und Datenstrukturen SS August Arbeitszeit 90 min

ADS. 1. Vorlesung. Techniken der Programmentwicklung Prof. Dr. Wolfgang Schramm

Algorithmen und Datenstrukturen

Informatikgrundlagen (WS 2016/2017)

Algorithmen und Datenstrukturen

Datenstrukturen, Algorithmen und Programmierung 2

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

Algorithmen und Datenstrukturen (AuD) Prof. Dr. Claudia Eckert

Algorithmen und Datenstrukturen

Kapitel 1 Einleitung. Definition: Algorithmus nach M. Broy: aus: Informatik: Eine grundlegende Einführung, Band 1, Springer-Verlag, Berlin

Algorithmen und Datenstrukturen

Inhaltsverzeichnis. Einführende Bemerkungen 11. Das Fach Informatik 11 Zielsetzung der Vorlesung Grundbegriffe

Stud.-Nummer: Datenstrukturen & Algorithmen Seite 1

Algorithmen und Datenstrukturen

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

Theoretische Informatik: Berechenbarkeit und Formale Sprachen

Praktikum Algorithmische Anwendungen WS 2006/07 Sortieren in linearer Laufzeit

Informatikgrundlagen (WS 2015/2016)

Algorithmen und Datenstrukturen Sommersemester 2007

Vorlesung Programmieren

Theoretische Informatik: Berechenbarkeit und Formale Sprachen

Robert Sedgewick. Algorithmen in Java. Teil 1-4 Grundlagen Datenstrukturen Sortieren Suchen. Java-Beratung durch Michael Schidlowsky

Elementare Sortierverfahren

Algorithmen und Datenstrukturen 1

Übung Algorithmen und Datenstrukturen

Counting - Sort [ [ ] [ [ ] 1. SS 2008 Datenstrukturen und Algorithmen Sortieren in linearer Zeit

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

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

Robert Sedgewick. Algorithmen in Java. »il 1-4 Grundlagen Datenstrykturen Sortleren Suchen. java-beratung durch Michael Schidlowsky

Modul Algorithmik, T-Katalog

Datenstrukturen. Sommersemester Kapitel 1: Motivation / Grundlagen. Steffen Lange

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

Übung Algorithmen und Datenstrukturen

Technische Universität München

Algorithmen & Komplexität

Algorithmen und Datenstrukturen

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

4.2 Minimale Spannbäume: Der Algorithmus von Jarník/Prim Definition 4.2.1

Inhaltsverzeichnis. Teil 1 Grundlagen 23

Algorithms & Data Structures 2

Inhaltsverzeichnis. Teil 1 Grundlagen 21. Teil 2 Datenstrukturen 85

Einführung in die Informatik

Algorithmen und Datenstrukturen CS1017

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

Übung Algorithmen und Datenstrukturen

Einführung in die Informatik I (autip)

Definition Ein Heap (priority queue) ist eine abstrakte Datenstruktur mit folgenden Kennzeichen:

Komplexität von Algorithmen SS 2011

Theoretische Informatik: Berechenbarkeit und Formale Sprachen

Vorlesung Datenstrukturen

Diskrete Strukturen WS 2010/11. Ernst W. Mayr. Wintersemester 2010/11. Fakultät für Informatik TU München

Kapitel 2. Weitere Beispiele Effizienter Algorithmen

Algorithmen und Datenstrukturen (fu r ET/IT) Personen. Programm heute. Wintersemester 2012/13. Wintersemester 2012/13. Dr.

Grundlagen der Algorithmen und Datenstrukturen

Datenstrukturen & Algorithmen

Einführung in die Informatik I Kapitel II.3: Sortieren

Grundlagen der Informatik

Willkommen zur Vorlesung. Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen (für ET/IT) Programm heute. Sommersemester Dr. Tobias Lasser. 1 Organisation

Abschnitt 19: Sortierverfahren

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

Übung Algorithmen und Datenstrukturen

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

Dank. Theoretische Informatik II. Teil II. Registermaschinen. Vorlesung

Aufgabe (Schreibtischtest, lexikographische Ordnung)

(08 - Einfache Sortierverfahren)

1.3 Erinnerung: Mergesort

Theoretische Informatik 2 bzw. Formale Sprachen und Berechenbarkeit. Sommersemester Herzlich willkommen!

Algorithmen und Datenstrukturen

UE Algorithmen und Datenstrukturen 1 UE Praktische Informatik 1. Übung 9. Sortieren

EINI LogWing/WiMa. Einführung in die Informatik für Naturwissenschaftler und Ingenieure. Vorlesung 2 SWS WS 17/18

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

Einführung in die Informatik 1

Sortieren II / HeapSort Heaps

Übung: Algorithmen und Datenstrukturen SS 2007

Datenstrukturen & Algorithmen

Algorithmen und Datenstrukturen (für ET/IT)

Programm heute. Algorithmen und Datenstrukturen (für ET/IT) Personen. Termine. Vorlesung. Sommersemester Dr. Tobias Lasser

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

Algorithmen und Datenstrukturen

EIDI 1 Einführung in die Informatik 1. PGdP Praktikum Grundlagen der Programmierung. Harald Räcke 2/217

4. Sortieren 4.1 Vorbemerkungen

Kapitel 8 Fortgeschrittene Sortieralgorithmen

Kapitel 3 Zur Korrektheit und Effizienz von Algorithmen

Algorithmen und Datenstrukturen 3. Vorlesung

Organisatorisches. Theoretische Informatik 3 WS 2005/06. Empfohlene Literatur. Übersicht

Lernmodul 7 Algorithmus von Dijkstra

Transkript:

SS14 Algorithmen und Datenstrukturen Vorbemerkungen und 1. Kapitel Martin Dietzfelbinger April 2014 FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel 0+1

Team: Vorlesung: Univ.-Prof. Dr. Martin Dietzfelbinger (Sprechstunde: Montag, 16:45 18:00 u. n. Vereinb.) Übungen: Dipl-Inf. Martin Aumüller, Dipl.-Ing. Christopher Mattern Praktika: Dipl.-Ing. Christopher Mattern FG Komplexitätstheorie und Effiziente Algorithmen http://www.tu-ilmenau.de/ktea/ FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel 0+1 1

Hörer: Informatikstudierende im 2. Semester. Bis Semestermitte: Studierende der Ing.-Informatik mit AuD als WP-Fach. Ab Semestermitte: Informatikstudierende im 4. Semester. Andere Interessenten sehr willkommen! FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel 0+1 2

Hörer: Informatikstudierende im 2. Semester. Bis Semestermitte: Studierende der Ing.-Informatik mit AuD als WP-Fach. Ab Semestermitte: Informatikstudierende im 4. Semester. Andere Interessenten sehr willkommen! Material: Eigene Notizen FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel 0+1 2

Hörer: Informatikstudierende im 2. Semester. Bis Semestermitte: Studierende der Ing.-Informatik mit AuD als WP-Fach. Ab Semestermitte: Informatikstudierende im 4. Semester. Andere Interessenten sehr willkommen! Material: Eigene Notizen und Folienkopien, Übungsblätter FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel 0+1 2

Hörer: Informatikstudierende im 2. Semester. Bis Semestermitte: Studierende der Ing.-Informatik mit AuD als WP-Fach. Ab Semestermitte: Informatikstudierende im 4. Semester. Andere Interessenten sehr willkommen! Material: Eigene Notizen und Folienkopien, Übungsblätter auf der folgenden Webseite: http://www.tu-ilmenau.de/iti/lehre/lehre-ss-2014/aud/ FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel 0+1 2

Hörer: Informatikstudierende im 2. Semester. Bis Semestermitte: Studierende der Ing.-Informatik mit AuD als WP-Fach. Ab Semestermitte: Informatikstudierende im 4. Semester. Andere Interessenten sehr willkommen! Material: Eigene Notizen und Folienkopien, Übungsblätter auf der folgenden Webseite: http://www.tu-ilmenau.de/iti/lehre/lehre-ss-2014/aud/ Ebenso: Aktuelle Mitteilungen. FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel 0+1 2

Hörer: Informatikstudierende im 2. Semester. Bis Semestermitte: Studierende der Ing.-Informatik mit AuD als WP-Fach. Ab Semestermitte: Informatikstudierende im 4. Semester. Andere Interessenten sehr willkommen! Material: Eigene Notizen und Folienkopien, Übungsblätter auf der folgenden Webseite: http://www.tu-ilmenau.de/iti/lehre/lehre-ss-2014/aud/ Ebenso: Aktuelle Mitteilungen. Zugang auch über die FG-Seite. FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel 0+1 2

Zur Arbeitsweise: Der Stoff ist zu kompliziert und zu umfangreich, um durch reines Zuhören verstanden zu werden. Regelmäßig Vorlesung nacharbeiten. Semesterbegleitend! Begleitend Bücher ansehen. Übungsblätter drucken, lesen, zur Übung mitbringen, vorher Lösung ausdenken, Lösungsweg aufschreiben, an Lösungen mitarbeiten, Lösungen vortragen. Regelmäßig Übungen nacharbeiten. Semesterbegleitend! Praktikumsaufgaben vorbereiten. Semesterbegleitend! Bei Verständnisproblemen frühzeitig fragen! FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel 0+1 3

Zeitaufwand? Beispielrechnung FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel 0+1 4

Zeitaufwand? Beispielrechnung Leistungspunkte: 8 LP Entspricht 240 Zeitstunden. FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel 0+1 4

Zeitaufwand? Beispielrechnung Leistungspunkte: 8 LP Entspricht 240 Zeitstunden. Vorlesungszeit: 15 Wochen. 12 Stunden pro Woche Davon: 6 in Vorlesung/Übung/Praktikum FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel 0+1 4

Zeitaufwand? Beispielrechnung Leistungspunkte: 8 LP Entspricht 240 Zeitstunden. Vorlesungszeit: 15 Wochen. 12 Stunden pro Woche Davon: 6 in Vorlesung/Übung/Praktikum Zeitaufwand: 6 7 Zeitstunden pro Woche neben Vorlesung/Übung! ergibt: 180 195 Stunden plus 45 60 Stunden Prüfungsvorbereitung! FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel 0+1 4

Vorlesung Montag 13:00 14:30 Hu-Hs Donnerstag 13:00 14:30 Hu-Hs FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel 0+1 5

Übung Montag 19:00 20:30 Sr HU 011 Dienstag 17:00 18:30 Sr HU 010 Mittwoch 09:00 10:30 Sr H 1519 Freitag 09:00 10:30 Sr HU 129 Der Übungsbetrieb läuft ab KW 15, also ab 7.4. Übungsblätter stehen im Netz. Übung vor- und nachbereiten! FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel 0+1 6

Praktikum Freitag, 13:00 14:30, U-Wochen, Sr K-Hs 2 Live -Programmierung in C++: Implementierung und Zeitmessung (hauptsächlich) zu Algorithmen aus der Vorlesung. Praktikumsanleitungen stehen im Netz. Abschluss: Implementierung eines Algorithmus in 3er-/4er-Gruppen, Details: Semestermitte. Hier: Implementierung = Quellcodegerüst vervollständigen. FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel 0+1 7

Prüfungsstoff: Vorlesung + Übungsaufgaben. FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel 0+1 8

Prüfungsstoff: Vorlesung + Übungsaufgaben. Prüfung: 150 Minuten (Informatik, 2. Semester). FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel 0+1 8

Prüfungsstoff: Vorlesung + Übungsaufgaben. Prüfung: 150 Minuten (Informatik, 2. Semester). 150 Punkte. FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel 0+1 8

Prüfungsstoff: Vorlesung + Übungsaufgaben. Prüfung: 150 Minuten (Informatik, 2. Semester). 150 Punkte. max. 20 Bonuspunkte über Zwischenklausur (40 Minuten). FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel 0+1 8

Prüfungsstoff: Vorlesung + Übungsaufgaben. Prüfung: 150 Minuten (Informatik, 2. Semester). 150 Punkte. max. 20 Bonuspunkte über Zwischenklausur (40 Minuten). bzw. 90 Minuten (Informatik und Ing.-Informatik, höhere Semester). FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel 0+1 8

Prüfungsstoff: Vorlesung + Übungsaufgaben. Prüfung: 150 Minuten (Informatik, 2. Semester). 150 Punkte. max. 20 Bonuspunkte über Zwischenklausur (40 Minuten). bzw. 90 Minuten (Informatik und Ing.-Informatik, höhere Semester). 90 Punkte. FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel 0+1 8

Prüfungsstoff: Vorlesung + Übungsaufgaben. Prüfung: 150 Minuten (Informatik, 2. Semester). 150 Punkte. max. 20 Bonuspunkte über Zwischenklausur (40 Minuten). bzw. 90 Minuten (Informatik und Ing.-Informatik, höhere Semester). 90 Punkte. max. 15 Bonuspunkte über Zwischenklausur (40 Minuten). FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel 0+1 8

Grundlagen, Voraussetzungen FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel 0+1 9

Grundlagen, Voraussetzungen Prof. G. Schäfer, Algorithmen und Programmierung für Informatiker, WS 2013/14 http://www.tu-ilmenau.de/telematik/lehre/wintersemester-2013-2014/ algorithmen-und-programmierung-fuer-ingenieur-informatiker/ Wird vorausgesetzt! FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel 0+1 9

Grundlagen, Voraussetzungen Prof. G. Schäfer, Algorithmen und Programmierung für Informatiker, WS 2013/14 http://www.tu-ilmenau.de/telematik/lehre/wintersemester-2013-2014/ algorithmen-und-programmierung-fuer-ingenieur-informatiker/ Wird vorausgesetzt! G. Saake, K. U. Sattler. Algorithmen und Datenstrukturen Eine Einführung mit Java. dpunkt.verlag, 4. Auflage, 2010. FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel 0+1 9

Grundlagen, Voraussetzungen Prof. G. Schäfer, Algorithmen und Programmierung für Informatiker, WS 2013/14 http://www.tu-ilmenau.de/telematik/lehre/wintersemester-2013-2014/ algorithmen-und-programmierung-fuer-ingenieur-informatiker/ Wird vorausgesetzt! G. Saake, K. U. Sattler. Algorithmen und Datenstrukturen Eine Einführung mit Java. dpunkt.verlag, 4. Auflage, 2010. Prof. M. Kriesell: Grundlagen und Diskrete Strukturen, Vorlesung, WS 2013/14 Wird vorausgesetzt! FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel 0+1 9

Literaturvorschläge: T. H. Cormen, C. E. Leiserson, R. L. Rivest, C. Stein, Introduction to Algorithms, 3rd ed., MIT Press, 2009 (Deutsche Ausgabe bei Oldenbourg) FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel 0+1 10

Literaturvorschläge: T. H. Cormen, C. E. Leiserson, R. L. Rivest, C. Stein, Introduction to Algorithms, 3rd ed., MIT Press, 2009 (Deutsche Ausgabe bei Oldenbourg) T. Ottmann, P. Widmayer, Algorithmen und Datenstrukturen, 5. Aufl., Spektrum Akademischer Verlag, 2012 FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel 0+1 10

Literaturvorschläge: T. H. Cormen, C. E. Leiserson, R. L. Rivest, C. Stein, Introduction to Algorithms, 3rd ed., MIT Press, 2009 (Deutsche Ausgabe bei Oldenbourg) T. Ottmann, P. Widmayer, Algorithmen und Datenstrukturen, 5. Aufl., Spektrum Akademischer Verlag, 2012 K. Mehlhorn, P. Sanders, Algorithms and Data Structures The Basic Toolbox, Springer-Verlag, 2008 FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel 0+1 10

Literaturvorschläge: T. H. Cormen, C. E. Leiserson, R. L. Rivest, C. Stein, Introduction to Algorithms, 3rd ed., MIT Press, 2009 (Deutsche Ausgabe bei Oldenbourg) T. Ottmann, P. Widmayer, Algorithmen und Datenstrukturen, 5. Aufl., Spektrum Akademischer Verlag, 2012 K. Mehlhorn, P. Sanders, Algorithms and Data Structures The Basic Toolbox, Springer-Verlag, 2008 (Deutsche Ausgabe erscheint Juli 2014, s. Ansage in Vorlesung) R. Sedgewick and K. Wayne, Algorithms, 4th ed., Addison-Wesley, 2011 (auch C-, C++, Java-Versionen, auch auf deutsch bei Pearson) (Part 5: Graph Algorithms, Addison-Wesley, 2003: separat). FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel 0+1 10

Literaturvorschläge (Forts.): R. H. Güting, S. Dieker, Datenstrukturen und Algorithmen, 3. Auflage, Vieweg+Teubner 2004 (einführend) FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel 0+1 11

Literaturvorschläge (Forts.): R. H. Güting, S. Dieker, Datenstrukturen und Algorithmen, 3. Auflage, Vieweg+Teubner 2004 (einführend) K. Weicker, N. Weicker, Algorithmen und Datenstrukturen, Springer Vieweg 2013 (einführend) FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel 0+1 11

Literaturvorschläge (Forts.): R. H. Güting, S. Dieker, Datenstrukturen und Algorithmen, 3. Auflage, Vieweg+Teubner 2004 (einführend) K. Weicker, N. Weicker, Algorithmen und Datenstrukturen, Springer Vieweg 2013 (einführend) V. Heun, Grundlegende Algorithmen, 2. Auflage, Vieweg, 2003 Springer-Verlag, 2008 FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel 0+1 11

Literaturvorschläge (Forts.): R. H. Güting, S. Dieker, Datenstrukturen und Algorithmen, 3. Auflage, Vieweg+Teubner 2004 (einführend) K. Weicker, N. Weicker, Algorithmen und Datenstrukturen, Springer Vieweg 2013 (einführend) V. Heun, Grundlegende Algorithmen, 2. Auflage, Vieweg, 2003 Springer-Verlag, 2008 S. Dasgupta, C. Papadimitriou, U. Vazirani, Algorithms, McGraw-Hill, 2007 FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel 0+1 11

Literaturvorschläge (Forts.): R. H. Güting, S. Dieker, Datenstrukturen und Algorithmen, 3. Auflage, Vieweg+Teubner 2004 (einführend) K. Weicker, N. Weicker, Algorithmen und Datenstrukturen, Springer Vieweg 2013 (einführend) V. Heun, Grundlegende Algorithmen, 2. Auflage, Vieweg, 2003 Springer-Verlag, 2008 S. Dasgupta, C. Papadimitriou, U. Vazirani, Algorithms, McGraw-Hill, 2007 J. Kleinberg, E. Tardos, Algorithm Design, Pearson Education, 2005 FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel 0+1 11

Literaturvorschläge (Forts.): R. H. Güting, S. Dieker, Datenstrukturen und Algorithmen, 3. Auflage, Vieweg+Teubner 2004 (einführend) K. Weicker, N. Weicker, Algorithmen und Datenstrukturen, Springer Vieweg 2013 (einführend) V. Heun, Grundlegende Algorithmen, 2. Auflage, Vieweg, 2003 Springer-Verlag, 2008 S. Dasgupta, C. Papadimitriou, U. Vazirani, Algorithms, McGraw-Hill, 2007 J. Kleinberg, E. Tardos, Algorithm Design, Pearson Education, 2005 U. Schöning, Algorithmik, Spektrum Akademischer Verlag, 2001 FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel 0+1 11

Literaturvorschläge (Forts.): R. H. Güting, S. Dieker, Datenstrukturen und Algorithmen, 3. Auflage, Vieweg+Teubner 2004 (einführend) K. Weicker, N. Weicker, Algorithmen und Datenstrukturen, Springer Vieweg 2013 (einführend) V. Heun, Grundlegende Algorithmen, 2. Auflage, Vieweg, 2003 Springer-Verlag, 2008 S. Dasgupta, C. Papadimitriou, U. Vazirani, Algorithms, McGraw-Hill, 2007 J. Kleinberg, E. Tardos, Algorithm Design, Pearson Education, 2005 U. Schöning, Algorithmik, Spektrum Akademischer Verlag, 2001 Vorlesung folgt eigenem Plan, nicht direkt einem Buch. FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel 0+1 11

Kapitel 1 Einführung und Grundlagen FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel 0+1 12

Datenstrukturen! FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel 0+1 13

Listen, Stacks, Queues Datenstrukturen! FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel 0+1 13

Listen, Stacks, Queues Einfache Suchbäume Datenstrukturen! FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel 0+1 13

Listen, Stacks, Queues Einfache Suchbäume Balancierte Suchbäume Datenstrukturen! FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel 0+1 13

Datenstrukturen! Listen, Stacks, Queues Einfache Suchbäume Balancierte Suchbäume Hashtabellen, implementieren Wörterbücher FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel 0+1 13

Datenstrukturen! Listen, Stacks, Queues Einfache Suchbäume Balancierte Suchbäume Hashtabellen, implementieren Wörterbücher Heaps, implementieren Prioritätswarteschlangen FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel 0+1 13

Datenstrukturen! Listen, Stacks, Queues Einfache Suchbäume Balancierte Suchbäume Hashtabellen, implementieren Wörterbücher Heaps, implementieren Prioritätswarteschlangen Datenstrukturen für Graphen FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel 0+1 13

Spezifikation des Verhaltens von Datenstrukturen (vereinfacht) FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel 0+1 14

Spezifikation des Verhaltens von Datenstrukturen (vereinfacht): (Abstrakte) Datentypen FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel 0+1 14

Spezifikation des Verhaltens von Datenstrukturen (vereinfacht): (Abstrakte) Datentypen Syntax: Signatur Semantik: Mathematisches Modell FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel 0+1 14

Spezifikation des Verhaltens von Datenstrukturen (vereinfacht): (Abstrakte) Datentypen Syntax: Signatur Semantik: Mathematisches Modell (Axiomatische Variante in AuP angesprochen.) FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel 0+1 14

Algorithmen! FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel 0+1 15

Algorithmen! Aufgabe: Für jede beliebige gegebene Folge (a 1, a 2,..., a n ) FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel 0+1 15

Algorithmen! Aufgabe: Für jede beliebige gegebene Folge (a 1, a 2,..., a n ) von natürlichen / ganzen / reellen Zahlen FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel 0+1 15

Algorithmen! Aufgabe: Für jede beliebige gegebene Folge (a 1, a 2,..., a n ) von natürlichen / ganzen / reellen Zahlen oder von Objekten aus einem total geordneten Bereich (U, <) FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel 0+1 15

Algorithmen! Aufgabe: Für jede beliebige gegebene Folge (a 1, a 2,..., a n ) von natürlichen / ganzen / reellen Zahlen oder von Objekten aus einem total geordneten Bereich (U, <) z.b.: Zahlentupel, Strings (Zeichenreihen), mit Namen versehene Datensätze, usw. FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel 0+1 15

Algorithmen! Aufgabe: Für jede beliebige gegebene Folge (a 1, a 2,..., a n ) von natürlichen / ganzen / reellen Zahlen oder von Objekten aus einem total geordneten Bereich (U, <) z.b.: Zahlentupel, Strings (Zeichenreihen), mit Namen versehene Datensätze, usw. sortiere (a 1, a 2,..., a n ) in aufsteigende Reihenfolge. FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel 0+1 15

Algorithmen! Aufgabe: Für jede beliebige gegebene Folge (a 1, a 2,..., a n ) von natürlichen / ganzen / reellen Zahlen oder von Objekten aus einem total geordneten Bereich (U, <) z.b.: Zahlentupel, Strings (Zeichenreihen), mit Namen versehene Datensätze, usw. sortiere (a 1, a 2,..., a n ) in aufsteigende Reihenfolge. Vorher: (Eve, Bob, Fran, Al) FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel 0+1 15

Algorithmen! Aufgabe: Für jede beliebige gegebene Folge (a 1, a 2,..., a n ) von natürlichen / ganzen / reellen Zahlen oder von Objekten aus einem total geordneten Bereich (U, <) z.b.: Zahlentupel, Strings (Zeichenreihen), mit Namen versehene Datensätze, usw. sortiere (a 1, a 2,..., a n ) in aufsteigende Reihenfolge. Vorher: (Eve, Bob, Fran, Al), nachher: (Al, Bob, Eve, Fran) FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel 0+1 15

Sortieren durch Einfügen (Insertion Sort) FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel 0+1 16

Sortieren durch Einfügen (Insertion Sort) Eingabe (a 1,..., a n ) in Array (Feld) A[1..n] FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel 0+1 16

Sortieren durch Einfügen (Insertion Sort) Eingabe (a 1,..., a n ) in Array (Feld) A[1..n] Idee: FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel 0+1 16

Sortieren durch Einfügen (Insertion Sort) Eingabe (a 1,..., a n ) in Array (Feld) A[1..n] Idee: Für i = 2, 3,..., n: FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel 0+1 16

Sortieren durch Einfügen (Insertion Sort) Eingabe (a 1,..., a n ) in Array (Feld) A[1..n] Idee: Für i = 2, 3,..., n: Suche die Stelle in der sortierten Version von a 1,..., a i 1, an die a i gehört, FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel 0+1 16

Sortieren durch Einfügen (Insertion Sort) Eingabe (a 1,..., a n ) in Array (Feld) A[1..n] Idee: Für i = 2, 3,..., n: Suche die Stelle in der sortierten Version von a 1,..., a i 1, an die a i gehört, und füge a i dort ein. FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel 0+1 16

Sortieren durch Einfügen (Insertion Sort) Eingabe (a 1,..., a n ) in Array (Feld) A[1..n] Idee: Für i = 2, 3,..., n: Suche die Stelle in der sortierten Version von a 1,..., a i 1, an die a i gehört, und füge a i dort ein. Pseudocode: FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel 0+1 16

Sortieren durch Einfügen (Insertion Sort) Eingabe (a 1,..., a n ) in Array (Feld) A[1..n] Idee: Für i = 2, 3,..., n: Suche die Stelle in der sortierten Version von a 1,..., a i 1, an die a i gehört, und füge a i dort ein. Pseudocode: Algorithmus Straight Insertion Sort FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel 0+1 16

Sortieren durch Einfügen (Insertion Sort) Eingabe (a 1,..., a n ) in Array (Feld) A[1..n] Idee: Für i = 2, 3,..., n: Suche die Stelle in der sortierten Version von a 1,..., a i 1, an die a i gehört, und füge a i dort ein. Pseudocode: Algorithmus Straight Insertion Sort (1) for i from 2 to n do (2) x A[i] ; (3) j i-1 ; (4) while j 1 and x.key < A[j].key do (5) A[j+1] A[j] ; (6) j j-1 ; (7) A[j+1] x. FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel 0+1 16

Was ist ein Algorithmus? Erklärung: FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel 0+1 17

Was ist ein Algorithmus? Erklärung: Ein Algorithmus A FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel 0+1 17

Was ist ein Algorithmus? Erklärung: Ein Algorithmus A ist eine durch einen endlichen Text FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel 0+1 17

Was ist ein Algorithmus? Erklärung: Ein Algorithmus A ist eine durch einen endlichen Text gegebene Verarbeitungsvorschrift, die zu jeder gegebenen Eingabe x FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel 0+1 17

Was ist ein Algorithmus? Erklärung: Ein Algorithmus A ist eine durch einen endlichen Text gegebene Verarbeitungsvorschrift, die zu jeder gegebenen Eingabe x aus einer Menge I (Menge der möglichen Eingaben) FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel 0+1 17

Was ist ein Algorithmus? Erklärung: Ein Algorithmus A ist eine durch einen endlichen Text gegebene Verarbeitungsvorschrift, die zu jeder gegebenen Eingabe x aus einer Menge I (Menge der möglichen Eingaben) eindeutig eine Reihe von auszuführenden Schritten vorschreibt. FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel 0+1 17

Was ist ein Algorithmus? Erklärung: Ein Algorithmus A ist eine durch einen endlichen Text gegebene Verarbeitungsvorschrift, die zu jeder gegebenen Eingabe x aus einer Menge I (Menge der möglichen Eingaben) eindeutig eine Reihe von auszuführenden Schritten vorschreibt. Wenn nach endlich vielen Schritten diese Ausführung anhält, FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel 0+1 17

Was ist ein Algorithmus? Erklärung: Ein Algorithmus A ist eine durch einen endlichen Text gegebene Verarbeitungsvorschrift, die zu jeder gegebenen Eingabe x aus einer Menge I (Menge der möglichen Eingaben) eindeutig eine Reihe von auszuführenden Schritten vorschreibt. Wenn nach endlich vielen Schritten diese Ausführung anhält, wird ein Ergebnis A(x) ausgegeben. FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel 0+1 17

Was ist ein Algorithmus? Erklärung: Ein Algorithmus A ist eine durch einen endlichen Text gegebene Verarbeitungsvorschrift, die zu jeder gegebenen Eingabe x aus einer Menge I (Menge der möglichen Eingaben) eindeutig eine Reihe von auszuführenden Schritten vorschreibt. Wenn nach endlich vielen Schritten diese Ausführung anhält, wird ein Ergebnis A(x) ausgegeben. Mögliche Formen: Umgangssprache, Pseudocode, Programm in Programmiersprache, Programm für formales Maschinenmodell, Programm in Maschinensprache. FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel 0+1 17

Allgemeine Merkmale eines Algorithmus FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel 0+1 18

Allgemeine Merkmale eines Algorithmus Endlicher Text FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel 0+1 18

Allgemeine Merkmale eines Algorithmus Endlicher Text Ein Algorithmus für eine große (oft: unendliche!) Menge von Eingaben x FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel 0+1 18

Allgemeine Merkmale eines Algorithmus Endlicher Text Ein Algorithmus für eine große (oft: unendliche!) Menge von Eingaben x (Beachte: Zeitliche Trennung der Formulierung des Algorithmus/der Programmierung und der Anwendung auf eine Eingabe.) FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel 0+1 18

Allgemeine Merkmale eines Algorithmus Endlicher Text Ein Algorithmus für eine große (oft: unendliche!) Menge von Eingaben x (Beachte: Zeitliche Trennung der Formulierung des Algorithmus/der Programmierung und der Anwendung auf eine Eingabe.) Eindeutig vorgeschriebene Abfolge von Schritten, wenn Eingabe x vorliegt FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel 0+1 18

Allgemeine Merkmale eines Algorithmus Endlicher Text Ein Algorithmus für eine große (oft: unendliche!) Menge von Eingaben x (Beachte: Zeitliche Trennung der Formulierung des Algorithmus/der Programmierung und der Anwendung auf eine Eingabe.) Eindeutig vorgeschriebene Abfolge von Schritten, wenn Eingabe x vorliegt Wenn Verarbeitung anhält: Ausgabe ablesbar FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel 0+1 18

Allgemeine Merkmale eines Algorithmus Endlicher Text Ein Algorithmus für eine große (oft: unendliche!) Menge von Eingaben x (Beachte: Zeitliche Trennung der Formulierung des Algorithmus/der Programmierung und der Anwendung auf eine Eingabe.) Eindeutig vorgeschriebene Abfolge von Schritten, wenn Eingabe x vorliegt Wenn Verarbeitung anhält: Ausgabe ablesbar Nicht verlangt: FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel 0+1 18

Allgemeine Merkmale eines Algorithmus Endlicher Text Ein Algorithmus für eine große (oft: unendliche!) Menge von Eingaben x (Beachte: Zeitliche Trennung der Formulierung des Algorithmus/der Programmierung und der Anwendung auf eine Eingabe.) Eindeutig vorgeschriebene Abfolge von Schritten, wenn Eingabe x vorliegt Wenn Verarbeitung anhält: Ausgabe ablesbar Nicht verlangt: Terminierung auf allen x I. FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel 0+1 18

Erweiterungen des Algorithmusbegriffs FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel 0+1 19

Erweiterungen des Algorithmusbegriffs Online-Algorithmen: Die Eingabe wird nicht am Anfang der Berechnung, sondern nach und nach zur Verfügung gestellt FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel 0+1 19

Erweiterungen des Algorithmusbegriffs Online-Algorithmen: Die Eingabe wird nicht am Anfang der Berechnung, sondern nach und nach zur Verfügung gestellt Häufige Situation bei Datenstrukturen FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel 0+1 19

Erweiterungen des Algorithmusbegriffs Online-Algorithmen: Die Eingabe wird nicht am Anfang der Berechnung, sondern nach und nach zur Verfügung gestellt Häufige Situation bei Datenstrukturen Standard bei Betriebssystemen, Systemprogrammen, Anwendungsprogrammen mit Benutzerdialog usw. FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel 0+1 19

Erweiterungen des Algorithmusbegriffs Online-Algorithmen: Die Eingabe wird nicht am Anfang der Berechnung, sondern nach und nach zur Verfügung gestellt Häufige Situation bei Datenstrukturen Standard bei Betriebssystemen, Systemprogrammen, Anwendungsprogrammen mit Benutzerdialog usw. Randomisierung: Algorithmus führt Zufallsexperimente durch FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel 0+1 19

Erweiterungen des Algorithmusbegriffs Online-Algorithmen: Die Eingabe wird nicht am Anfang der Berechnung, sondern nach und nach zur Verfügung gestellt Häufige Situation bei Datenstrukturen Standard bei Betriebssystemen, Systemprogrammen, Anwendungsprogrammen mit Benutzerdialog usw. Randomisierung: Algorithmus führt Zufallsexperimente durch Verteilte Algorithmen : Mehrere Rechner arbeiten zusammen, kommunizieren, zeitliche Abfolge nicht vorhersagbar FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel 0+1 19

Erweiterungen des Algorithmusbegriffs Online-Algorithmen: Die Eingabe wird nicht am Anfang der Berechnung, sondern nach und nach zur Verfügung gestellt Häufige Situation bei Datenstrukturen Standard bei Betriebssystemen, Systemprogrammen, Anwendungsprogrammen mit Benutzerdialog usw. Randomisierung: Algorithmus führt Zufallsexperimente durch Verteilte Algorithmen : Mehrere Rechner arbeiten zusammen, kommunizieren, zeitliche Abfolge nicht vorhersagbar in dieser Vorlesung nicht oder nur am Rande diskutiert FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel 0+1 19

Algorithmen im 1. Teil dieser Vorlesung: FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel 0+1 20

Algorithmen im 1. Teil dieser Vorlesung: Darstellung von Algorithmen, Bausteine für Algorithmen (besonders Iteration, Rekursion) FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel 0+1 20

Algorithmen im 1. Teil dieser Vorlesung: Darstellung von Algorithmen, Bausteine für Algorithmen (besonders Iteration, Rekursion) Analyse 1: Korrektheit von Algorithmen, Induktionsbeweise für iterative und rekursive Verfahren FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel 0+1 20

Algorithmen im 1. Teil dieser Vorlesung: Darstellung von Algorithmen, Bausteine für Algorithmen (besonders Iteration, Rekursion) Analyse 1: Korrektheit von Algorithmen, Induktionsbeweise für iterative und rekursive Verfahren Analyse 2: Laufzeitbegriff, O-Notation, Laufzeitanalyse FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel 0+1 20

Algorithmen im 1. Teil dieser Vorlesung: Darstellung von Algorithmen, Bausteine für Algorithmen (besonders Iteration, Rekursion) Analyse 1: Korrektheit von Algorithmen, Induktionsbeweise für iterative und rekursive Verfahren Analyse 2: Laufzeitbegriff, O-Notation, Laufzeitanalyse Algorithmen zur Implementierung von Datentypen FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel 0+1 20

Algorithmen im 1. Teil dieser Vorlesung: Darstellung von Algorithmen, Bausteine für Algorithmen (besonders Iteration, Rekursion) Analyse 1: Korrektheit von Algorithmen, Induktionsbeweise für iterative und rekursive Verfahren Analyse 2: Laufzeitbegriff, O-Notation, Laufzeitanalyse Algorithmen zur Implementierung von Datentypen Balancierte Suchbäume, einfache Hashverfahren FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel 0+1 20

Algorithmen im 1. Teil dieser Vorlesung: Darstellung von Algorithmen, Bausteine für Algorithmen (besonders Iteration, Rekursion) Analyse 1: Korrektheit von Algorithmen, Induktionsbeweise für iterative und rekursive Verfahren Analyse 2: Laufzeitbegriff, O-Notation, Laufzeitanalyse Algorithmen zur Implementierung von Datentypen Balancierte Suchbäume, einfache Hashverfahren Sortierverfahren: Quicksort, Heapsort, Mergesort, CountingSort FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel 0+1 20

Algorithmen im 1. Teil dieser Vorlesung: Darstellung von Algorithmen, Bausteine für Algorithmen (besonders Iteration, Rekursion) Analyse 1: Korrektheit von Algorithmen, Induktionsbeweise für iterative und rekursive Verfahren Analyse 2: Laufzeitbegriff, O-Notation, Laufzeitanalyse Algorithmen zur Implementierung von Datentypen Balancierte Suchbäume, einfache Hashverfahren Sortierverfahren: Quicksort, Heapsort, Mergesort, CountingSort Datenstrukturen für Graphen FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel 0+1 20

Algorithmen im 1. Teil dieser Vorlesung: Darstellung von Algorithmen, Bausteine für Algorithmen (besonders Iteration, Rekursion) Analyse 1: Korrektheit von Algorithmen, Induktionsbeweise für iterative und rekursive Verfahren Analyse 2: Laufzeitbegriff, O-Notation, Laufzeitanalyse Algorithmen zur Implementierung von Datentypen Balancierte Suchbäume, einfache Hashverfahren Sortierverfahren: Quicksort, Heapsort, Mergesort, CountingSort Datenstrukturen für Graphen Grundlegende Exploration von Graphen: FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel 0+1 20

Algorithmen im 1. Teil dieser Vorlesung: Darstellung von Algorithmen, Bausteine für Algorithmen (besonders Iteration, Rekursion) Analyse 1: Korrektheit von Algorithmen, Induktionsbeweise für iterative und rekursive Verfahren Analyse 2: Laufzeitbegriff, O-Notation, Laufzeitanalyse Algorithmen zur Implementierung von Datentypen Balancierte Suchbäume, einfache Hashverfahren Sortierverfahren: Quicksort, Heapsort, Mergesort, CountingSort Datenstrukturen für Graphen Grundlegende Exploration von Graphen: Breitensuche FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel 0+1 20

Algorithmus Straight Insertion Sort (Pseudocode) FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel 0+1 21

Algorithmus Straight Insertion Sort (Pseudocode) (1) for i from 2 to n do (2) x A[i] ; (3) j i-1 ; (4) while j 1 and x.key < A[j].key do (5) A[j+1] A[j] ; (6) j j-1 ; (7) A[j+1] x. FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel 0+1 21

Algorithmus Straight Insertion Sort (Pseudocode) (1) for i from 2 to n do (2) x A[i] ; (3) j i-1 ; (4) while j 1 and x.key < A[j].key do (5) A[j+1] A[j] ; (6) j j-1 ; (7) A[j+1] x. Fragen: FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel 0+1 21

Algorithmus Straight Insertion Sort (Pseudocode) (1) for i from 2 to n do (2) x A[i] ; (3) j i-1 ; (4) while j 1 and x.key < A[j].key do (5) A[j+1] A[j] ; (6) j j-1 ; (7) A[j+1] x. Fragen: (a) Ist dieser Algorithmus korrekt? FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel 0+1 21

Algorithmus Straight Insertion Sort (Pseudocode) (1) for i from 2 to n do (2) x A[i] ; (3) j i-1 ; (4) while j 1 and x.key < A[j].key do (5) A[j+1] A[j] ; (6) j j-1 ; (7) A[j+1] x. Fragen: (a) Ist dieser Algorithmus korrekt? (b) Wie lange braucht der Algorithmus, um die Berechnung zu beenden? FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel 0+1 21

(a) Korrektheitsbeweise Damit die Frage nach einem Beweis der Korrektheit sinnvoll ist, müssen wir die zu lösende Aufgabe zunächst spezifizieren. FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel 0+1 22

(a) Korrektheitsbeweise Damit die Frage nach einem Beweis der Korrektheit sinnvoll ist, müssen wir die zu lösende Aufgabe zunächst spezifizieren. Bemerkung: Aus einer vagen Problemstellung eine präzise Spezifikation des zu lösenden Problems zu gewinnen ist ein in der Praxis extrem wichtiger Schritt, dessen Bedeutung oft unterschätzt wird. FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel 0+1 22

Berechnungsprobleme FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel 0+1 23

Berechnungsprobleme Erklärung: Ein Berechnungsproblem P besteht aus FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel 0+1 23

Berechnungsprobleme Erklärung: Ein Berechnungsproblem P besteht aus (i) einer Menge I von möglichen Eingaben ( Inputs, Instanzen ) FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel 0+1 23

Berechnungsprobleme Erklärung: Ein Berechnungsproblem P besteht aus (i) einer Menge I von möglichen Eingaben ( Inputs, Instanzen ) (I kann unendlich sein!) FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel 0+1 23

Berechnungsprobleme Erklärung: Ein Berechnungsproblem P besteht aus (i) einer Menge I von möglichen Eingaben ( Inputs, Instanzen ) (I kann unendlich sein!) (ii) einer Menge O von möglichen Ausgaben FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel 0+1 23

Berechnungsprobleme Erklärung: Ein Berechnungsproblem P besteht aus (i) einer Menge I von möglichen Eingaben ( Inputs, Instanzen ) (I kann unendlich sein!) (ii) einer Menge O von möglichen Ausgaben (iii) einer Funktion f : I O FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel 0+1 23

Berechnungsprobleme Erklärung: Ein Berechnungsproblem P besteht aus (i) einer Menge I von möglichen Eingaben ( Inputs, Instanzen ) (I kann unendlich sein!) (ii) (iii) einer Menge O von möglichen Ausgaben einer Funktion f : I O Ein Algorithmus A löst P, wenn A genau die Eingaben aus I verarbeitet und zu Eingabe x I Ausgabe A(x) = f(x) liefert. FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel 0+1 23

Berechnungsprobleme Erklärung: Ein Berechnungsproblem P besteht aus (i) einer Menge I von möglichen Eingaben ( Inputs, Instanzen ) (I kann unendlich sein!) (ii) (iii) einer Menge O von möglichen Ausgaben einer Funktion f : I O Ein Algorithmus A löst P, wenn A genau die Eingaben aus I verarbeitet und zu Eingabe x I Ausgabe A(x) = f(x) liefert. Spezialfall O = {1, 0} = {true, false} = {Ja, Nein} (Entscheidungsproblem) FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel 0+1 23

Varianten FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel 0+1 24

Varianten Zu einer Eingabe x I gibt es mehrere legale Ergebnisse. Formal: In (iii) haben wir statt einer Funktion f eine Relation R I O mit: x I y O : R(x, y). FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel 0+1 24

Varianten Zu einer Eingabe x I gibt es mehrere legale Ergebnisse. Formal: In (iii) haben wir statt einer Funktion f eine Relation R I O mit: x I y O : R(x, y). A löst P, wenn A genau die Eingaben aus I verarbeitet und R(x, A(x)) für jedes x I gilt. FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel 0+1 24

Varianten Zu einer Eingabe x I gibt es mehrere legale Ergebnisse. Formal: In (iii) haben wir statt einer Funktion f eine Relation R I O mit: x I y O : R(x, y). A löst P, wenn A genau die Eingaben aus I verarbeitet und R(x, A(x)) für jedes x I gilt. Beispiel: Beim Sortieren von Datensätzen (k i, d ki ), wobei ein Schlüssel k wiederholt als k i vorkommen darf, kann jede sortierte Anordnung eine legale Lösung sein. FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel 0+1 24

Varianten Zu einer Eingabe x I gibt es mehrere legale Ergebnisse. Formal: In (iii) haben wir statt einer Funktion f eine Relation R I O mit: x I y O : R(x, y). A löst P, wenn A genau die Eingaben aus I verarbeitet und R(x, A(x)) für jedes x I gilt. Beispiel: Beim Sortieren von Datensätzen (k i, d ki ), wobei ein Schlüssel k wiederholt als k i vorkommen darf, kann jede sortierte Anordnung eine legale Lösung sein. Online-Situation: Eingabe wird in Raten geliefert, Zwischenausgaben werden verlangt. FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel 0+1 24

Spezifikation des Sortierproblems Parameter: Der Grundbereich, aus dem die zu sortierenden Objekte stammen, ist ein Parameter der Spezifikation. FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel 0+1 25

Spezifikation des Sortierproblems Parameter: Der Grundbereich, aus dem die zu sortierenden Objekte stammen, ist ein Parameter der Spezifikation. (U, <): eine total geordnete Menge (endlich oder unendlich). FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel 0+1 25

Spezifikation des Sortierproblems Parameter: Der Grundbereich, aus dem die zu sortierenden Objekte stammen, ist ein Parameter der Spezifikation. (U, <): eine total geordnete Menge (endlich oder unendlich). Beispiele: Zahlenmengen {1,..., n}, N, Z, Q; Mengen von Strings. FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel 0+1 25

Spezifikation des Sortierproblems Parameter: Der Grundbereich, aus dem die zu sortierenden Objekte stammen, ist ein Parameter der Spezifikation. (U, <): eine total geordnete Menge (endlich oder unendlich). Beispiele: Zahlenmengen {1,..., n}, N, Z, Q; Mengen von Strings. D: Eine Menge (von Datensätzen ). FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel 0+1 25

Spezifikation des Sortierproblems Parameter: Der Grundbereich, aus dem die zu sortierenden Objekte stammen, ist ein Parameter der Spezifikation. (U, <): eine total geordnete Menge (endlich oder unendlich). Beispiele: Zahlenmengen {1,..., n}, N, Z, Q; Mengen von Strings. D: Eine Menge (von Datensätzen ). Jeder Datensatz a hat einen Sortierschlüssel : key: D U. I = O = Seq(D) = D < = n 0 Dn FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel 0+1 25

Spezifikation des Sortierproblems Parameter: Der Grundbereich, aus dem die zu sortierenden Objekte stammen, ist ein Parameter der Spezifikation. (U, <): eine total geordnete Menge (endlich oder unendlich). Beispiele: Zahlenmengen {1,..., n}, N, Z, Q; Mengen von Strings. D: Eine Menge (von Datensätzen ). Jeder Datensatz a hat einen Sortierschlüssel : key: D U. I = O = Seq(D) = D < = n 0 Dn = {(a 1..., a n ) n N, a 1,..., a n D}, FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel 0+1 25

Spezifikation des Sortierproblems Parameter: Der Grundbereich, aus dem die zu sortierenden Objekte stammen, ist ein Parameter der Spezifikation. (U, <): eine total geordnete Menge (endlich oder unendlich). Beispiele: Zahlenmengen {1,..., n}, N, Z, Q; Mengen von Strings. D: Eine Menge (von Datensätzen ). Jeder Datensatz a hat einen Sortierschlüssel : key: D U. I = O = Seq(D) = D < = n 0 Dn = {(a 1..., a n ) n N, a 1,..., a n D}, die Menge aller endlichen Folgen von Datensätzen. FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel 0+1 25

Beispiel: U = N, D = N {a,..., z} key : D (i, b) i U FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel 0+1 26

Beispiel: U = N, D = N {a,..., z} key : D (i, b) i U Ein möglicher Input: x = ((5, r), (3, s), (11, t), (6, e), (9, r), (5, t), (4, o), (5, i)). FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel 0+1 26

Beispiel: U = N, D = N {a,..., z} key : D (i, b) i U Ein möglicher Input: x = ((5, r), (3, s), (11, t), (6, e), (9, r), (5, t), (4, o), (5, i)). Das Ergebnis beim Sortieren sollte z. B. sein: y = ((3, s), (4, o), (5, r), (5, t), (5, i), (6, e), (9, r), (11, t)). FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel 0+1 26

x = (a 1,..., a n ) I und y = (b 1,..., b m ) O stehen in der Relation R FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel 0+1 27

x = (a 1,..., a n ) I und y = (b 1,..., b m ) O stehen in der Relation R n = m FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel 0+1 27

x = (a 1,..., a n ) I und y = (b 1,..., b m ) O stehen in der Relation R n = m und es gibt eine Permutation π von {1,..., n} FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel 0+1 27

x = (a 1,..., a n ) I und y = (b 1,..., b m ) O stehen in der Relation R n = m und es gibt eine Permutation π von {1,..., n} mit b i = a π(i), 1 i n, und key(b 1 ) key(b 2 ) key(b n ). FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel 0+1 27

x = (a 1,..., a n ) I und y = (b 1,..., b m ) O stehen in der Relation R n = m und es gibt eine Permutation π von {1,..., n} mit b i = a π(i), 1 i n, und key(b 1 ) key(b 2 ) key(b n ). Beispiel: Für x = ((5, r), (3, s), (11, t), (6, e), (9, r), (5, t), (4, o), (5, i)) und y = ((3, s), (4, o), (5, r), (5, t), (5, i), (6, e), (9, r), (11, t)) wäre ( ) 1 2 3 4 5 6 7 8 π = 2 7 1 6 8 4 5 3 passend. FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel 0+1 27

Alternative Formulierung für die Spezifikation einer Lösung des Sortierproblems: O = {π π Permutation einer Menge {1,..., n}, n N} FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel 0+1 28

Alternative Formulierung für die Spezifikation einer Lösung des Sortierproblems: O = {π π Permutation einer Menge {1,..., n}, n N} Definition: x = (a 1,..., a n ) wird durch π sortiert, wenn key(a π(1) ) key(a π(2) ) key(a π(n) ) gilt. FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel 0+1 28

Alternative Formulierung für die Spezifikation einer Lösung des Sortierproblems: O = {π π Permutation einer Menge {1,..., n}, n N} Definition: x = (a 1,..., a n ) wird durch π sortiert, wenn key(a π(1) ) key(a π(2) ) key(a π(n) ) gilt. x = (a 1,..., a n ) und π stehen in der Relation R, FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel 0+1 28

Alternative Formulierung für die Spezifikation einer Lösung des Sortierproblems: O = {π π Permutation einer Menge {1,..., n}, n N} Definition: x = (a 1,..., a n ) wird durch π sortiert, wenn key(a π(1) ) key(a π(2) ) key(a π(n) ) gilt. x = (a 1,..., a n ) und π stehen in der Relation R, wenn x durch π sortiert wird. FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel 0+1 28

Löst Straight Insertion Sort das Sortierproblem? Gilt für jede Eingabe (a 1,..., a n ) in A[1..n], dass nachher dieselben Elemente im Array stehen, aber nach Schlüsseln aufsteigend sortiert? FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel 0+1 29

Korrektheitsbeweis an Beispiel: Durch vollständige Induktion über i = 1, 2,..., n zeigt man die folgende Behauptung: FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel 0+1 30

Korrektheitsbeweis an Beispiel: Durch vollständige Induktion über i = 1, 2,..., n zeigt man die folgende Behauptung: (IB i ) Nach Durchlauf Nummer i (in i) der äußeren Schleife FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel 0+1 30

Korrektheitsbeweis an Beispiel: Durch vollständige Induktion über i = 1, 2,..., n zeigt man die folgende Behauptung: (IB i ) Nach Durchlauf Nummer i (in i) der äußeren Schleife stehen in A[1..i] dieselben Elemente wie vorher, aber aufsteigend sortiert. FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel 0+1 30

Korrektheitsbeweis an Beispiel: Durch vollständige Induktion über i = 1, 2,..., n zeigt man die folgende Behauptung: (IB i ) Nach Durchlauf Nummer i (in i) der äußeren Schleife stehen in A[1..i] dieselben Elemente wie vorher, aber aufsteigend sortiert. I.A.: i = 1: Nach Durchlauf für i = 1 ist vor Beginn. FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel 0+1 30

Korrektheitsbeweis an Beispiel: Durch vollständige Induktion über i = 1, 2,..., n zeigt man die folgende Behauptung: (IB i ) Nach Durchlauf Nummer i (in i) der äußeren Schleife stehen in A[1..i] dieselben Elemente wie vorher, aber aufsteigend sortiert. I.A.: i = 1: Nach Durchlauf für i = 1 ist vor Beginn. Anfangs ist das Teilarray A[1..1] (nur ein Eintrag) sortiert. FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel 0+1 30

Korrektheitsbeweis an Beispiel: Durch vollständige Induktion über i = 1, 2,..., n zeigt man die folgende Behauptung: (IB i ) Nach Durchlauf Nummer i (in i) der äußeren Schleife stehen in A[1..i] dieselben Elemente wie vorher, aber aufsteigend sortiert. I.A.: i = 1: Nach Durchlauf für i = 1 ist vor Beginn. Anfangs ist das Teilarray A[1..1] (nur ein Eintrag) sortiert. I.V.: (IB i 1 ) gilt, d. h.a[1..i 1] ist sortiert, und Schleifendurchlauf i beginnt. FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel 0+1 30

Ind.-Schritt: Betrachte Schleifendurchlauf i. FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel 0+1 31

Ind.-Schritt: Betrachte Schleifendurchlauf i. Sei k die kleinste Zahl in {0,..., i 1}, so dass key(a[j]) > key(a[i]) für k < j < i. FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel 0+1 31

Ind.-Schritt: Betrachte Schleifendurchlauf i. Sei k die kleinste Zahl in {0,..., i 1}, so dass key(a[j]) > key(a[i]) für k < j < i. Dann ist key(a[j]) key(a[i]) für 1 j k. FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel 0+1 31

Ind.-Schritt: Betrachte Schleifendurchlauf i. Sei k die kleinste Zahl in {0,..., i 1}, so dass key(a[j]) > key(a[i]) für k < j < i. Dann ist key(a[j]) key(a[i]) für 1 j k. Die innere Schleife (2) (7) verschiebt die Einträge A[i 1],A[i 2],...,A[k + 1] nacheinander um eine Position nach rechts FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel 0+1 31

Ind.-Schritt: Betrachte Schleifendurchlauf i. Sei k die kleinste Zahl in {0,..., i 1}, so dass key(a[j]) > key(a[i]) für k < j < i. Dann ist key(a[j]) key(a[i]) für 1 j k. Die innere Schleife (2) (7) verschiebt die Einträge A[i 1],A[i 2],...,A[k + 1] nacheinander um eine Position nach rechts und schreibt x = A[i] (via x) an die Stelle A[k + 1]. FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel 0+1 31

Ind.-Schritt: Betrachte Schleifendurchlauf i. Sei k die kleinste Zahl in {0,..., i 1}, so dass key(a[j]) > key(a[i]) für k < j < i. Dann ist key(a[j]) key(a[i]) für 1 j k. Die innere Schleife (2) (7) verschiebt die Einträge A[i 1],A[i 2],...,A[k + 1] nacheinander um eine Position nach rechts und schreibt x = A[i] (via x) an die Stelle A[k + 1]. Ind.-Beh. (IB i ) erfüllt. FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel 0+1 31

Ind.-Schritt: Betrachte Schleifendurchlauf i. Sei k die kleinste Zahl in {0,..., i 1}, so dass key(a[j]) > key(a[i]) für k < j < i. Dann ist key(a[j]) key(a[i]) für 1 j k. Die innere Schleife (2) (7) verschiebt die Einträge A[i 1],A[i 2],...,A[k + 1] nacheinander um eine Position nach rechts und schreibt x = A[i] (via x) an die Stelle A[k + 1]. Ind.-Beh. (IB i ) erfüllt. Also gilt (IB n ), also ist nach Abschluss des Ablaufs das Array sortiert. FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel 0+1 31

Methoden für Korrektheitsbeweise FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel 0+1 32

Methoden für Korrektheitsbeweise Diskrete Mathematik FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel 0+1 32

Methoden für Korrektheitsbeweise Diskrete Mathematik Vollständige Induktion FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel 0+1 32

Methoden für Korrektheitsbeweise Diskrete Mathematik Vollständige Induktion Schleifen FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel 0+1 32

Methoden für Korrektheitsbeweise Diskrete Mathematik Vollständige Induktion Schleifen Wesentlich: Formulierung der Induktionsbehauptung. Schleifeninvariante. FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel 0+1 32

Methoden für Korrektheitsbeweise Diskrete Mathematik Vollständige Induktion Schleifen Wesentlich: Formulierung der Induktionsbehauptung. Schleifeninvariante. Andere Formen der Induktion FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel 0+1 32

Methoden für Korrektheitsbeweise Diskrete Mathematik Vollständige Induktion Schleifen Wesentlich: Formulierung der Induktionsbehauptung. Schleifeninvariante. Andere Formen der Induktion Rekursive Prozeduren FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel 0+1 32

(b) Laufzeitanalysen FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel 0+1 33

(b) Laufzeitanalysen Kosten, Aufwand, Eingabe x abläuft. Rechenzeit, wenn Algorithmus A auf FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel 0+1 33

Kosten, Aufwand, Eingabe x abläuft. (b) Laufzeitanalysen Eingabegröße: n = x = size(x). Rechenzeit, wenn Algorithmus A auf FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel 0+1 33

Kosten, Aufwand, Eingabe x abläuft. (b) Laufzeitanalysen Rechenzeit, wenn Algorithmus A auf Eingabegröße: n = x = size(x). (Bedeutung ist abhängig von Problem P.) I n = {x I size(x) = n} FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel 0+1 33

Kosten, Aufwand, Eingabe x abläuft. (b) Laufzeitanalysen Rechenzeit, wenn Algorithmus A auf Eingabegröße: n = x = size(x). (Bedeutung ist abhängig von Problem P.) I n = {x I size(x) = n} Größenklasse FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel 0+1 33

Kosten, Aufwand, Eingabe x abläuft. (b) Laufzeitanalysen Rechenzeit, wenn Algorithmus A auf Eingabegröße: n = x = size(x). (Bedeutung ist abhängig von Problem P.) I n = {x I size(x) = n} Größenklasse Beim Sortierproblem: size((a 1,..., a n )) = n. FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel 0+1 33