SS14 Algorithmen und Datenstrukturen Vorbemerkungen und 1. Kapitel

Größe: px
Ab Seite anzeigen:

Download "SS14 Algorithmen und Datenstrukturen Vorbemerkungen und 1. Kapitel"

Transkript

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

2 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 FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel 0+1 1

3 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

4 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

5 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

6 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: FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel 0+1 2

7 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: Ebenso: Aktuelle Mitteilungen. FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel 0+1 2

8 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: Ebenso: Aktuelle Mitteilungen. Zugang auch über die FG-Seite. FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel 0+1 2

9 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

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

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

12 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

13 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: Stunden plus Stunden Prüfungsvorbereitung! FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel 0+1 4

14 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

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

16 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

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

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

19 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

20 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

21 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

22 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

23 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

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

25 Grundlagen, Voraussetzungen Prof. G. Schäfer, Algorithmen und Programmierung für Informatiker, WS 2013/14 algorithmen-und-programmierung-fuer-ingenieur-informatiker/ Wird vorausgesetzt! FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel 0+1 9

26 Grundlagen, Voraussetzungen Prof. G. Schäfer, Algorithmen und Programmierung für Informatiker, WS 2013/14 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, FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel 0+1 9

27 Grundlagen, Voraussetzungen Prof. G. Schäfer, Algorithmen und Programmierung für Informatiker, WS 2013/14 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, 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

28 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

29 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

30 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

31 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

32 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

33 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

34 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

35 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

36 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

37 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

38 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

39 Kapitel 1 Einführung und Grundlagen FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel

40 Datenstrukturen! FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel

41 Listen, Stacks, Queues Datenstrukturen! FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel

42 Listen, Stacks, Queues Einfache Suchbäume Datenstrukturen! FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel

43 Listen, Stacks, Queues Einfache Suchbäume Balancierte Suchbäume Datenstrukturen! FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel

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

45 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

46 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

47 Spezifikation des Verhaltens von Datenstrukturen (vereinfacht) FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel

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

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

50 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

51 Algorithmen! FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel

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

53 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

54 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

55 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

56 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

57 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

58 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

59 Sortieren durch Einfügen (Insertion Sort) FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel

60 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

61 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

62 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

63 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

64 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

65 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

66 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

67 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

68 Was ist ein Algorithmus? Erklärung: FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel

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

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

71 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

72 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

73 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

74 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

75 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

76 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

77 Allgemeine Merkmale eines Algorithmus FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel

78 Allgemeine Merkmale eines Algorithmus Endlicher Text FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel

79 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

80 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

81 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

82 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

83 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

84 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

85 Erweiterungen des Algorithmusbegriffs FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel

86 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

87 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

88 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

89 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

90 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

91 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

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

93 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

94 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

95 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

96 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

97 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

98 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

99 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

100 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

101 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

102 Algorithmus Straight Insertion Sort (Pseudocode) FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel

103 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

104 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

105 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

106 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

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

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

109 Berechnungsprobleme FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel

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

111 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

112 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

113 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

114 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

115 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

116 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

117 Varianten FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel

118 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

119 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

120 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

121 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

122 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

123 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

124 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

125 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

126 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

127 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

128 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

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

130 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

131 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

132 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

133 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

134 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

135 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

136 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 ( ) π = passend. FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel

137 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

138 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

139 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

140 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

141 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

142 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

143 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

144 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

145 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

146 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

147 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

148 Ind.-Schritt: Betrachte Schleifendurchlauf i. FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel

149 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

150 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

151 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

152 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

153 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

154 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

155 Methoden für Korrektheitsbeweise FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel

156 Methoden für Korrektheitsbeweise Diskrete Mathematik FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel

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

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

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

160 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

161 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

162 (b) Laufzeitanalysen FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS14 Kapitel

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

164 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

165 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

166 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

167 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

Algorithmen und Datenstrukturen 1. Vorlesung

Algorithmen und Datenstrukturen 1. Vorlesung Algorithmen und Datenstrukturen 1. Vorlesung Martin Dietzfelbinger 7. April 2008 FG KTuEA, TU Ilmenau AuD 07.04.2008 Hörer: Informatikstudierende im 2. Semester, Ingenieurinformatik im 4. Semester. Andere

Mehr

SS10 Algorithmen und Datenstrukturen Vorbemerkungen und 1. Kapitel

SS10 Algorithmen und Datenstrukturen Vorbemerkungen und 1. Kapitel SS10 Algorithmen und Datenstrukturen Vorbemerkungen und 1. Kapitel Martin Dietzfelbinger April 2010 Hörer: Informatikstudierende im 2. Semester. Andere Interessenten sehr willkommen! Material: Eigene Notizen!

Mehr

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

Algorithmen und Datenstrukturen. Organisatorisches. Christian Komusiewicz Ernst-Abbe-Platz 2, R3315 Algorithmen und Datenstrukturen Christian Komusiewicz Ernst-Abbe-Platz 2, R3315 christian.komusiewicz@uni-jena.de Friedrich-Schiller-Universität Jena Institut für Informatik http://users.fmi.uni-jena.de/

Mehr

Effiziente Algorithmen

Effiziente Algorithmen Effiziente Algorithmen Vorüberlegungen und Divide-and-Conquer-Algorithmen Vorlesender: Martin Aumüller (nach Folien von Prof. Martin Dietzfelbinger) April 2012 FG KTuEA, TU Ilmenau Effiziente Algorithmen

Mehr

Algorithmentheorie 1. Vorlesung

Algorithmentheorie 1. Vorlesung Algorithmentheorie 1. Vorlesung Martin Dietzfelbinger 6. April 2006 FG KTuEA, TU Ilmenau AT 06.04.2006 Methode, Material Vorlesung Vorlesungsskript (Netz, Copyshop) Folien (im Netz) Vorlesung nachbereiten!

Mehr

Algorithmentheorie 1. Vorlesung

Algorithmentheorie 1. Vorlesung Algorithmentheorie. Vorlesung Martin Dietzfelbinger 6. April 2006 Methode, Material Vorlesung Vorlesungsskript (Netz, Copyshop) Folien (im Netz) Vorlesung nachbereiten! Übung Übungsblätter (im Netz) Übung

Mehr

Algorithmen und Datenstrukturen SS09

Algorithmen und Datenstrukturen SS09 Foliensatz 1 Michael Brinkmeier Technische Universität Ilmenau Institut für Theoretische Informatik Sommersemester 2009 Einiges Vorweg Organisatorisches Hörer: Vorlesung: Übungen: Homepage: Prüfungsstoff:

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Wintersemester 2013/14 1. Vorlesung Kapitel 1: Sortieren Prof. Dr. Alexander Wolff Lehrstuhl für Informatik I Das Problem Eingabe Gegeben: eine Folge A = a 1, a 2,..., a

Mehr

Algorithmen & Datenstrukturen

Algorithmen & Datenstrukturen Algorithmen & Datenstrukturen Prof. Dr. Gerd Stumme Universität Kassel FB Elektrotechnik/Informatik FG Wissensverarbeitung Sommersemester 2009 Ziele der Veranstaltung 1 Kennenlernen grundlegender Algorithmen

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Prof. Dr. Ralf Möller Universität zu Lübeck Institut für Informationssysteme Stefan Werner (Übungen) sowie viele Tutoren Teilnehmerkreis und Voraussetzungen Studiengänge

Mehr

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

Algorithmen und Datenstrukturen (AuD) Prof. Dr. Claudia Eckert und Dr. Thomas Stibor Algorithmen und Datenstrukturen (AuD) Prof. Dr. Claudia Eckert und Dr. Thomas Stibor Organisatorisches: Vorlesung 4 SWS, Zentralübung 2 SWS: 6 Credit Points Mi 9:45 11:15 Raum 1200 (Vorlesung) Do 8:00

Mehr

NAME, VORNAME: Studiennummer: Matrikel:

NAME, VORNAME: Studiennummer: Matrikel: TU Ilmenau, Fakultat IA Institut für Theoretische Informatik FG Komplexitätstheorie und Effiziente Algorithmen Prof. Dr. (USA) M. Dietzfelbinger Klausur Algorithmen und Datenstrukturen SS08, Ing.-Inf.

Mehr

Klausur Algorithmen und Datenstrukturen SS August Arbeitszeit 90 min

Klausur Algorithmen und Datenstrukturen SS August Arbeitszeit 90 min TU Ilmenau, Fakultät für Informatik und Automatisierung FG Komplexitätstheorie und Effiziente Algorithmen Univ.-Prof. Dr. M. Dietzfelbinger, Dipl.-Ing. C. Mattern Klausur Algorithmen und Datenstrukturen

Mehr

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

ADS. 1. Vorlesung. Techniken der Programmentwicklung Prof. Dr. Wolfgang Schramm ADS 1. Vorlesung Techniken der Programmentwicklung Prof. Dr. Wolfgang Schramm 6.10.2016 ORGANISATORISCHES Algorithmen & Datenstrukturen Prof. Dr. Wolfgang Schramm Der Dozent 2 Prof. Dr. Wolfgang Schramm

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen A1. Organisatorisches Marcel Lüthi and Gabriele Röger Universität Basel 28. Februar 2018 Organisatorisches Personen: Dozenten Marcel Lüthi Gabriele Röger Dozenten Dr. Marcel

Mehr

Informatikgrundlagen (WS 2016/2017)

Informatikgrundlagen (WS 2016/2017) Informatikgrundlagen (WS 2016/2017) Klaus Berberich (klaus.berberich@htwsaar.de) Wolfgang Braun (wolfgang.braun@htwsaar.de) 0. Organisatorisches Dozenten Klaus Berberich (klaus.berberich@htwsaar.de) Sprechstunde

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Wintersemester 2012/13 1. Vorlesung Kapitel 1: Sortieren Prof. Dr. Alexander Wolff Lehrstuhl für Informatik I Das Problem Eingabe Gegeben: eine Folge A = a 1, a 2,..., a

Mehr

Datenstrukturen, Algorithmen und Programmierung 2

Datenstrukturen, Algorithmen und Programmierung 2 Datenstrukturen, Algorithmen und Programmierung 2 Professor Dr. Petra Mutzel Lehrstuhl für Algorithm Engineering, LS11 Fakultät für Informatik, TU Dortmund 1. VO SS 2008 8. April 2008 Petra Mutzel Kurzvorstellung

Mehr

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

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

Mehr

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

Algorithmen und Datenstrukturen (AuD) Prof. Dr. Claudia Eckert Algorithmen und Datenstrukturen (AuD) Prof. Dr. Claudia Eckert Organisatorisches: Vorlesung 4 SWS, Zentralübung 2 SWS: 6 Credit Points Mi 10:30-12:00 Raum 1200 (Vorlesung) Do 8:15-9:45 Raum 1200 (Vorlesung)

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Lehrstuhl für Informatik I Algorithmen und Datenstrukturen Wintersemester 2013/14 Organisatorisches Vorlesung: Übungsbetreuung: Übungen: Programmiertutorium: Alexander Wolff (E29) Krzysztof Fleszar (E13)

Mehr

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

Kapitel 1 Einleitung. Definition: Algorithmus nach M. Broy: aus: Informatik: Eine grundlegende Einführung, Band 1, Springer-Verlag, Berlin Kapitel 1 Einleitung 1.1. Begriff des Algorithmus Eine der ältesten Beschreibungstechniken für Abläufe: Benannt nach dem Mathematiker Al-Khwarizmi (ca. 780...840), der am Hof der Kalifen von Bagdad wirkte.

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Wintersemester 2012/13 Organisatorisches Vorlesung: Übungsbetreuung: Übungen: Programmierübungen: Alexander Wolff (E29) Jan Haunert (E27) Markus Ankenbrand Titus Dose Alexej

Mehr

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

Inhaltsverzeichnis. Einführende Bemerkungen 11. Das Fach Informatik 11 Zielsetzung der Vorlesung Grundbegriffe Inhaltsverzeichnis Einführende Bemerkungen 11 Das Fach Informatik 11 Zielsetzung der Vorlesung 12 1. Grundbegriffe 1 3 1.1 1.2 1.3 1.4 1.5 1.6 1.7 Information und Nachricht 1.1.1 Information 1.1.2 Nachricht

Mehr

Stud.-Nummer: Datenstrukturen & Algorithmen Seite 1

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

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen A3. Sortieren: Selection- und Insertionsort Marcel Lüthi and Gabriele Röger Universität Basel 1. März 2018 Sortieralgorithmen Inhalt dieser Veranstaltung A&D Sortieren Komplexitätsanalyse

Mehr

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

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

Mehr

Theoretische Informatik: Berechenbarkeit und Formale Sprachen

Theoretische Informatik: Berechenbarkeit und Formale Sprachen Theoretische Informatik: Berechenbarkeit und Formale Sprachen Prof. Dr. F. Otto Fachbereich Elektrotechnik/Informatik, Universität Kassel 34109 Kassel, Germany E-mail: otto@theory.informatik.uni-kassel.de

Mehr

Praktikum Algorithmische Anwendungen WS 2006/07 Sortieren in linearer Laufzeit

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

Mehr

Informatikgrundlagen (WS 2015/2016)

Informatikgrundlagen (WS 2015/2016) Informatikgrundlagen (WS 2015/2016) Klaus Berberich (klaus.berberich@htwsaar.de) Wolfgang Braun (wolfgang.braun@htwsaar.de) 0. Organisatorisches Dozenten Klaus Berberich (klaus.berberich@htwsaar.de) Sprechstunde

Mehr

Algorithmen und Datenstrukturen Sommersemester 2007

Algorithmen und Datenstrukturen Sommersemester 2007 Algorithmen und Datenstrukturen Sommersemester 2007 Steffen Reith reith@informatik.fh-wiesbaden.de Fachhochschule Wiesbaden 4. April 2007 Steffen Reith Algorithmen und Datenstrukturen 4. April 2007 1 /

Mehr

Vorlesung Programmieren

Vorlesung Programmieren Vorlesung Programmieren Organisation Dr. Dennis Pfisterer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/pfisterer Ziele dieser Veranstaltung Ziel: Wissen, wie man Computerprogramme

Mehr

Theoretische Informatik: Berechenbarkeit und Formale Sprachen

Theoretische Informatik: Berechenbarkeit und Formale Sprachen Theoretische Informatik: Berechenbarkeit und Formale Sprachen Prof. Dr. F. Otto Fachbereich Elektrotechnik/Informatik, Universität Kassel 34109 Kassel, Germany E-mail: otto@theory.informatik.uni-kassel.de

Mehr

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

Robert Sedgewick. Algorithmen in Java. Teil 1-4 Grundlagen Datenstrukturen Sortieren Suchen. Java-Beratung durch Michael Schidlowsky Robert Sedgewick Algorithmen in Java Teil 1-4 Grundlagen Datenstrukturen Sortieren Suchen Java-Beratung durch Michael Schidlowsky 3., überarbeitete Auflage \ PEARSON ein Imprint von Pearson Education München

Mehr

Elementare Sortierverfahren

Elementare Sortierverfahren Algorithmen und Datenstrukturen I Elementare Sortierverfahren Fakultät für Informatik und Mathematik Hochschule München Letzte Änderung: 18.03.2018 18:16 Inhaltsverzeichnis Sortieren.......................................

Mehr

Algorithmen und Datenstrukturen 1

Algorithmen und Datenstrukturen 1 Algorithmen und Datenstrukturen 1 4. Vorlesung Peter F. Stadler Universität Leipzig Institut für Informatik studla@bioinf.uni-leipzig.de 4. Sortierverfahren Elementare Sortierverfahren - Sortieren durch

Mehr

Übung Algorithmen und Datenstrukturen

Übung Algorithmen und Datenstrukturen Übung Algorithmen und Datenstrukturen Sommersemester 2016 Patrick Schäfer, Humboldt-Universität zu Berlin Agenda 1. Vorstellen des vierten Übungsblatts 2. Vorbereitende Aufgaben für das vierte Übungsblatt

Mehr

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

Counting - Sort [ [ ] [ [ ] 1. SS 2008 Datenstrukturen und Algorithmen Sortieren in linearer Zeit Counting-Sort Counting - Sort ( A,B,k ). for i to k. do C[ i]. for j to length[ A]. do C[ A[ j ] C[ A[ j ] +. > C[ i] enthält Anzahl der Elemente in 6. for i to k. do C[ i] C[ i] + C[ i ]. > C[ i] enthält

Mehr

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

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

Mehr

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

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

Mehr

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

Robert Sedgewick. Algorithmen in Java. »il 1-4 Grundlagen Datenstrykturen Sortleren Suchen. java-beratung durch Michael Schidlowsky Robert Sedgewick Algorithmen in Java»il 1-4 Grundlagen Datenstrykturen Sortleren Suchen java-beratung durch Michael Schidlowsky 3., überarbeitete Auflage PEARSON ein Imprint von Pearson Education München

Mehr

Modul Algorithmik, T-Katalog

Modul Algorithmik, T-Katalog Modul Algorithmik, T-Katalog Sommersemester 2017 Steffen Lange 1/1, Folie 1 2017 Prof. Steffen Lange - HDa/FbI - Algorithmik Organisatorisches u Vorlesung Folien im Netz u Übung eine Übung alle 14 Tage

Mehr

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

Datenstrukturen. Sommersemester Kapitel 1: Motivation / Grundlagen. Steffen Lange Datenstrukturen Sommersemester 2010 Steffen Lange 1/1, Folie 1 2010 Prof. Steffen Lange - HDa/FbI - Datenstrukturen Organisatorisches Vorlesung wöchentlich; zwei Blöcke Folien im Netz (/* bitte zur Vorlesung

Mehr

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

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

Mehr

Übung Algorithmen und Datenstrukturen

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

Mehr

Technische Universität München

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

Mehr

Algorithmen & Komplexität

Algorithmen & Komplexität Algorithmen & Komplexität Angelika Steger Institut für Theoretische Informatik steger@inf.ethz.ch Breitensuche, Tiefensuche Wir besprechen nun zwei grundlegende Verfahren, alle Knoten eines Graphen zu

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Prof. Dr. Ralf Möller Universität zu Lübeck Institut für Informationssysteme Tanya Braun (Übungen) sowie viele Tutoren Teilnehmerkreis und Voraussetzungen Studiengänge Bachelor

Mehr

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

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

Mehr

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

4.2 Minimale Spannbäume: Der Algorithmus von Jarník/Prim Definition 4.2.1 Allgemeines. Minimale Spannbäume: Der Algorithmus von Jarník/Prim Definition.. (a) Ein Graph G =(V, E) heißt kreisfrei, wenn er keinen Kreis besitzt. Beispiel: Ein kreisfreier Graph: FG KTuEA, TU Ilmenau

Mehr

Inhaltsverzeichnis. Teil 1 Grundlagen 23

Inhaltsverzeichnis. Teil 1 Grundlagen 23 Inhaltsverzeichnis Vorwort 11 Umfang 12 Einsatz als Unterrichtsmittel 12 Algorithmen mit Praxisbezug 13 Programmiersprache 14 Danksagung 15 Vorwort des C++-Beraters 16 Hinweise zu den Übungen 21 Teil 1

Mehr

Algorithms & Data Structures 2

Algorithms & Data Structures 2 Algorithms & Data Structures Digital Sorting WS B. Anzengruber-Tanase (Institute for Pervasive Computing, JKU Linz) (Institute for Pervasive Computing, JKU Linz) WIEDERHOLUNG :: UNTERE SCHRANKE FÜR SORTIEREN

Mehr

Inhaltsverzeichnis. Teil 1 Grundlagen 21. Teil 2 Datenstrukturen 85

Inhaltsverzeichnis. Teil 1 Grundlagen 21. Teil 2 Datenstrukturen 85 Inhaltsverzeichnis Vorwort 13 Umfang 14 Einsatz als Unterrichtsmittel 14 Algorithmen mit Praxisbezug 15 Programmiersprache 16 Danksagung 17 Vorwort des Java-Beraters 18 Hinweise zu den Übungen 19 Teil

Mehr

Einführung in die Informatik

Einführung in die Informatik Einführung in die Informatik Christian Rössl Wintersemester 2017/18 Einführung in die Informatik Christian Rössl EinfInf 2017: Übersicht 2 Berechenbarkeit Rekursion Java Analyse Theoretische Grundlagen

Mehr

Algorithmen und Datenstrukturen CS1017

Algorithmen und Datenstrukturen CS1017 Algorithmen und Datenstrukturen CS1017 Th. Letschert TH Mittelhessen Gießen University of Applied Sciences Organisatorisches und Einführung Lehrpersonal Dozent Dr. Letschert Tutoren Alissia Sauer Jonas

Mehr

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

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

Mehr

Ü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

Einführung in die Informatik I (autip)

Einführung in die Informatik I (autip) Einführung in die Informatik I (autip) Dr. Stefan Lewandowski Fakultät 5: Informatik, Elektrotechnik und Informationstechnik Abteilung Formale Konzepte Universität Stuttgart 24. Oktober 2007 Was Sie bis

Mehr

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

Definition Ein Heap (priority queue) ist eine abstrakte Datenstruktur mit folgenden Kennzeichen: HeapSort Allgemeines Sortieralgorithmen gehören zu den am häufigsten angewendeten Algorithmen in der Datenverarbeitung. Man hatte daher bereits früh ein großes Interesse an der Entwicklung möglichst effizienter

Mehr

Komplexität von Algorithmen SS 2011

Komplexität von Algorithmen SS 2011 Komplexität von Algorithmen SS 2011 Volker Strehl Informatik 8 4. Mai 2011 Organisatorisches Vorlesungstermine Mittwoch, 08:30 10:00 im H4 Freitag, 10:15 11:45 Uhr im H14 (Werkstoffwissenschaften) Organisatorisches

Mehr

Theoretische Informatik: Berechenbarkeit und Formale Sprachen

Theoretische Informatik: Berechenbarkeit und Formale Sprachen Theoretische Informatik: Berechenbarkeit und Formale Sprachen Prof. Dr. F. Otto Fachbereich Elektrotechnik/Informatik, Universität Kassel 34109 Kassel, Germany E-mail: otto@theory.informatik.uni-kassel.de

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

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

Diskrete Strukturen WS 2010/11. Ernst W. Mayr. Wintersemester 2010/11.  Fakultät für Informatik TU München WS 2010/11 Diskrete Strukturen Ernst W. Mayr Fakultät für Informatik TU München http://www14.in.tum.de/lehre/2010ws/ds/ Wintersemester 2010/11 Diskrete Strukturen Kapitel 0 Organisatorisches Vorlesungen:

Mehr

Kapitel 2. Weitere Beispiele Effizienter Algorithmen

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

Mehr

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

Algorithmen und Datenstrukturen (fu r ET/IT) Personen. Programm heute. Wintersemester 2012/13. Wintersemester 2012/13. Dr. Algorithmen und Datenstrukturen (fu r ET/IT) Algorithmen und Datenstrukturen (fu r ET/IT) Wintersemester 2012/13 Wintersemester 2012/13 Dr. Tobias Lasser Dr. Tobias Lasser Computer Aided Medical Procedures

Mehr

Grundlagen der Algorithmen und Datenstrukturen

Grundlagen der Algorithmen und Datenstrukturen Grundlagen der Algorithmen und Datenstrukturen Christian Scheideler + Helmut Seidl SS 2009 01.04.09 Kapitel 0 1 Vorlesung: Organisatorisches Di 12:00 13:30 MI HS 1 Do 12:00 12:45 MI HS 1 Übungen: 34 Alternativen

Mehr

Datenstrukturen & Algorithmen

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

Mehr

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

Einführung in die Informatik I Kapitel II.3: Sortieren 1 Einführung in die Informatik I Kapitel II.3: Sortieren Prof. Dr.-Ing. Marcin Grzegorzek Juniorprofessur für Mustererkennung im Institut für Bildinformatik Department Elektrotechnik und Informatik Fakultät

Mehr

Grundlagen der Informatik

Grundlagen der Informatik Jörn Fischer j.fischer@hs-mannheim.de Willkommen zur Vorlesung Grundlagen der Informatik ADS-Teil Page 2 Überblick Inhalt 1 Eigenschaften von Algorithmen Algorithmenbegriff O-Notation Entwurfstechniken

Mehr

Willkommen zur Vorlesung. Algorithmen und Datenstrukturen

Willkommen zur Vorlesung. Algorithmen und Datenstrukturen Willkommen zur Vorlesung Algorithmen und Datenstrukturen Mein Name: Andreas Berndt Zum Dozenten Diplom-Informatiker (TU Darmstadt) Derzeit Software-Entwickler für Web- Applikationen Derzeitige Sprachen:

Mehr

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

Algorithmen und Datenstrukturen (für ET/IT) Programm heute. Sommersemester Dr. Tobias Lasser. 1 Organisation Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 2014 Dr. Tobias Lasser Computer Aided Medical Procedures Technische Universität München Programm heute 1 Organisation 2 Einführung Ziele und Inhalt

Mehr

Abschnitt 19: Sortierverfahren

Abschnitt 19: Sortierverfahren Abschnitt 19: Sortierverfahren 19. Sortierverfahren 19.1 Allgemeines 19.2 Einfache Sortierverfahren 19.3 Effizientes Sortieren: Quicksort 19.4 Zusammenfassung 19 Sortierverfahren Informatik 2 (SS 07) 758

Mehr

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

Eingabe: Array A mit n Elementen im Bereich [0,1) Annahme: die Elemente sind in [0,1) gleichverteilt Bucketsort Eingabe: Array A mit n Elementen im Bereich [0,1) Annahme: die Elemente sind in [0,1) gleichverteilt Sonst: Skalieren ( Aufwand O(n) ), oder Algo etwas umschreiben Idee: Teile [0, 1) in k gleich

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

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

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

Mehr

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

Dank. Theoretische Informatik II. Teil II. Registermaschinen. Vorlesung Dank Vorlesung Theoretische Informatik II Bernhard Beckert Institut für Informatik Diese Vorlesungsmaterialien basieren zum Teil auf den Folien zu den Vorlesungen von Katrin Erk (gehalten an der Universität

Mehr

Aufgabe (Schreibtischtest, lexikographische Ordnung)

Aufgabe (Schreibtischtest, lexikographische Ordnung) Aufgabe (Schreibtischtest, lexikographische Ordnung) Führen Sie einen Schreibtischtest für den Algorithmus Bubblesort aus der VL für die folgenden Eingabe-Arrays durch. Geben Sie das Array S nach jedem

Mehr

(08 - Einfache Sortierverfahren)

(08 - Einfache Sortierverfahren) Vorlesung Informatik 2 Algorithmen und Datenstrukturen (08 - Einfache Sortierverfahren) Prof. Dr. Susanne Albers Sortieren Motivation, Einführung Datenbestände müssen sehr oft sortiert werden, etwa um

Mehr

1.3 Erinnerung: Mergesort

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

Mehr

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

Theoretische Informatik 2 bzw. Formale Sprachen und Berechenbarkeit. Sommersemester Herzlich willkommen! Theoretische Informatik 2 bzw. Formale Sprachen und Berechenbarkeit Sommersemester 2012 Prof. Dr. Nicole Schweikardt AG Theorie komplexer Systeme Goethe-Universität Frankfurt am Main Herzlich willkommen!

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Gunter Saake Kai-Uwe Sattler Algorithmen und Datenstrukturen Eine Einführung mit Java 4., überarbeitete Auflage dpunkt.verlag XI Inhaltsverzeichnis I Grundlegende Konzepte 1 1 Vorbemerkungen und Überblick

Mehr

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

UE Algorithmen und Datenstrukturen 1 UE Praktische Informatik 1. Übung 9. Sortieren UE Algorithmen und Datenstrukturen 1 UE Praktische Informatik 1 Übung 9 Sortieren Institut für Pervasive Computing Johannes Kepler Universität Linz Altenberger Straße 69, A-4040 Linz Sortieren :: Problemstellung

Mehr

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

EINI LogWing/WiMa. Einführung in die Informatik für Naturwissenschaftler und Ingenieure. Vorlesung 2 SWS WS 17/18 EINI LogWing/WiMa Einführung in die Informatik für Naturwissenschaftler und Ingenieure Vorlesung 2 SWS WS 17/18 Dr. Lars Hildebrand Fakultät für Informatik Technische Universität Dortmund lars.hildebrand@tu-dortmund.de

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

Einführung in die Informatik 1

Einführung in die Informatik 1 Einführung in die Informatik 1 Algorithmen und algorithmische Sprachkonzepte Sven Kosub AG Algorithmik/Theorie komplexer Systeme Universität Konstanz E 202 Sven.Kosub@uni-konstanz.de Sprechstunde: Freitag,

Mehr

Sortieren II / HeapSort Heaps

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

Mehr

Übung: Algorithmen und Datenstrukturen SS 2007

Übung: Algorithmen und Datenstrukturen SS 2007 Übung: Algorithmen und Datenstrukturen SS 2007 Prof. Lengauer Sven Apel, Michael Claÿen, Christoph Zengler, Christof König Blatt 5 Votierung in der Woche vom 04.06.0708.06.07 Aufgabe 12 Manuelle Sortierung

Mehr

Datenstrukturen & Algorithmen

Datenstrukturen & Algorithmen Datenstrukturen & Algorithmen VO 708.031 Um was geht es? Datenstrukturen Algorithmen Algorithmus Versuch einer Erklärung: Ein Algorithmus nimmt bestimmte Daten als Input und transformiert diese nach festen

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 1 Organisation 2 Einführung Ziele und Inhalt

Mehr

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

Programm heute. Algorithmen und Datenstrukturen (für ET/IT) Personen. Termine. Vorlesung. Sommersemester Dr. Tobias Lasser Programm heute Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 2014 1 Organisation Dr. Tobias Lasser Computer Aided Medical Procedures Technische Universität München 2 Einführung Ziele und Inhalt

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

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen 1-1 Lehrstuhl fu r Informatik I Algorithmen und Datenstrukturen Wintersemester 2017/18 Organisatorisches Vorlesung: Alexander Wolff (E29) U bungsbetreuung: Andre Lo ffler (E16) Fabian Lipp (E14) Johannes

Mehr

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

EIDI 1 Einführung in die Informatik 1. PGdP Praktikum Grundlagen der Programmierung. Harald Räcke 2/217 EIDI 1 Einführung in die Informatik 1 PGdP Praktikum Grundlagen der Programmierung Harald Räcke 2/217 Wie löst man Probleme mithilfe von Computern? 0 Harald Räcke 3/217 Inhalte: EIDI 1 1. Was ist das Problem?

Mehr

4. Sortieren 4.1 Vorbemerkungen

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

Mehr

Kapitel 8 Fortgeschrittene Sortieralgorithmen

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

Mehr

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

Algorithmen und Datenstrukturen 3. Vorlesung

Algorithmen und Datenstrukturen 3. Vorlesung Algorithmen und Datenstrukturen 3. Vorlesung Martin Dietzfelbinger 18. April 2005 Stacks Queues Listen... Datentypen und Datenstrukturen FG KTuEA, TU Ilmenau AuD 18.04.2005 FG KTuEA, TU Ilmenau AuD 18.04.2005

Mehr

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

Organisatorisches. Theoretische Informatik 3 WS 2005/06. Empfohlene Literatur. Übersicht Organisatorisches Theoretische Informatik 3 WS 2005/06 Volker Strehl Informatik 8 20. Oktober 2005 Vorlesungstermine Montags und Donnerstag, 16:00 17:30 Uhr im H9 Übungen in 7 Gruppen, Termine und Eintragung

Mehr

Lernmodul 7 Algorithmus von Dijkstra

Lernmodul 7 Algorithmus von Dijkstra Folie 1 von 30 Lernmodul 7 Algorithmus von Dijkstra Quelle: http://www.map24.de Folie 2 von 30 Algorithmus von Dijkstra Übersicht Kürzester Weg von A nach B in einem Graphen Problemstellung: Suche einer

Mehr