Datenstrukturen 1. Sommersemester Basierend auf Folien von Prof. Georg Schnitger und Prof. Ulrich Meyer

Größe: px
Ab Seite anzeigen:

Download "Datenstrukturen 1. Sommersemester Basierend auf Folien von Prof. Georg Schnitger und Prof. Ulrich Meyer"

Transkript

1 Datenstrukturen 1 Sommersemester Basierend auf Folien von Prof. Georg Schnitger und Prof. Ulrich Meyer Martin Hoefer Datenstrukturen Kapitel Mai / 79

2 Datenstrukturen 1 Sommersemester 2019 Herzlich willkommen! 1 Basierend auf Folien von Prof. Georg Schnitger und Prof. Ulrich Meyer Martin Hoefer Datenstrukturen Kapitel Mai / 79

3 Wer ist wer? Wir: Professur für Algorithmen und Komplexität Martin Hoefer (Vorlesungen) R 115 RMS 11 15, mhoefer@cs.uni-frankfurt.de Martin Hoefer Datenstrukturen Kapitel Mai / 79

4 Wer ist wer? Wir: Professur für Algorithmen und Komplexität Martin Hoefer (Vorlesungen) R 115 RMS 11 15, mhoefer@cs.uni-frankfurt.de Niklas Hahn (Übungskoordination) R106 RMS 11 15, n.hahn@em.uni-frankfurt.de Martin Hoefer Datenstrukturen Kapitel Mai / 79

5 Wer ist wer? Wir: Professur für Algorithmen und Komplexität Martin Hoefer (Vorlesungen) R 115 RMS 11 15, mhoefer@cs.uni-frankfurt.de Niklas Hahn (Übungskoordination) R106 RMS 11 15, n.hahn@em.uni-frankfurt.de Karl Fehrs, Marius Hagemann, Melvin Kallmayer, Rene Meier, Adrian Musella, Elias Pitschmann, Leonard Priester, Jonas Strauch, Tolga Tel, Yauheniya Zhdanovich (Tutoren) Martin Hoefer Datenstrukturen Kapitel Mai / 79

6 Wer ist wer? Wir: Professur für Algorithmen und Komplexität Martin Hoefer (Vorlesungen) R 115 RMS 11 15, mhoefer@cs.uni-frankfurt.de Niklas Hahn (Übungskoordination) R106 RMS 11 15, n.hahn@em.uni-frankfurt.de Karl Fehrs, Marius Hagemann, Melvin Kallmayer, Rene Meier, Adrian Musella, Elias Pitschmann, Leonard Priester, Jonas Strauch, Tolga Tel, Yauheniya Zhdanovich (Tutoren) algo.cs.uni-frankfurt.de Sommer 2019 Datenstrukturen Martin Hoefer Datenstrukturen Kapitel Mai / 79

7 Wer ist wer? Wir: Professur für Algorithmen und Komplexität Martin Hoefer (Vorlesungen) R 115 RMS 11 15, mhoefer@cs.uni-frankfurt.de Niklas Hahn (Übungskoordination) R106 RMS 11 15, n.hahn@em.uni-frankfurt.de Karl Fehrs, Marius Hagemann, Melvin Kallmayer, Rene Meier, Adrian Musella, Elias Pitschmann, Leonard Priester, Jonas Strauch, Tolga Tel, Yauheniya Zhdanovich (Tutoren) algo.cs.uni-frankfurt.de Sommer 2019 Datenstrukturen Wer sind Sie? Martin Hoefer Datenstrukturen Kapitel Mai / 79

8 Worum geht s? Martin Hoefer Datenstrukturen Kapitel Mai / 79

9 Abstrakte Datentypen und Datenstrukturen Ein abstrakter Datentyp ist eine Sammlung von Operationen auf einer Menge von Objekten. Eine Datenstruktur ist eine Implementation eines abstrakten Datentyps Martin Hoefer Datenstrukturen Kapitel Mai / 79

10 Abstrakte Datentypen und Datenstrukturen Ein abstrakter Datentyp ist eine Sammlung von Operationen auf einer Menge von Objekten. Eine Datenstruktur ist eine Implementation eines abstrakten Datentyps Ein Beispiel für häufig auftretende Operationen: das Einfügen und Entfernen von Schlüsseln nach ihrem Alter. Wenn der jüngste Schlüssel zu entfernen ist: Wähle die Datenstruktur Martin Hoefer Datenstrukturen Kapitel Mai / 79

11 Abstrakte Datentypen und Datenstrukturen Ein abstrakter Datentyp ist eine Sammlung von Operationen auf einer Menge von Objekten. Eine Datenstruktur ist eine Implementation eines abstrakten Datentyps Ein Beispiel für häufig auftretende Operationen: das Einfügen und Entfernen von Schlüsseln nach ihrem Alter. Wenn der jüngste Schlüssel zu entfernen ist: Wähle die Datenstruktur Stack. Martin Hoefer Datenstrukturen Kapitel Mai / 79

12 Abstrakte Datentypen und Datenstrukturen Ein abstrakter Datentyp ist eine Sammlung von Operationen auf einer Menge von Objekten. Eine Datenstruktur ist eine Implementation eines abstrakten Datentyps Ein Beispiel für häufig auftretende Operationen: das Einfügen und Entfernen von Schlüsseln nach ihrem Alter. Wenn der jüngste Schlüssel zu entfernen ist: Wähle die Datenstruktur Stack. Wenn der älteste Schlüssel zu entfernen ist: Wähle die Datenstruktur Martin Hoefer Datenstrukturen Kapitel Mai / 79

13 Abstrakte Datentypen und Datenstrukturen Ein abstrakter Datentyp ist eine Sammlung von Operationen auf einer Menge von Objekten. Eine Datenstruktur ist eine Implementation eines abstrakten Datentyps Ein Beispiel für häufig auftretende Operationen: das Einfügen und Entfernen von Schlüsseln nach ihrem Alter. Wenn der jüngste Schlüssel zu entfernen ist: Wähle die Datenstruktur Stack. Wenn der älteste Schlüssel zu entfernen ist: Wähle die Datenstruktur Schlange (engl. Queue ). Martin Hoefer Datenstrukturen Kapitel Mai / 79

14 Abstrakte Datentypen und Datenstrukturen Ein abstrakter Datentyp ist eine Sammlung von Operationen auf einer Menge von Objekten. Eine Datenstruktur ist eine Implementation eines abstrakten Datentyps Ein Beispiel für häufig auftretende Operationen: das Einfügen und Entfernen von Schlüsseln nach ihrem Alter. Wenn der jüngste Schlüssel zu entfernen ist: Wähle die Datenstruktur Stack. Wenn der älteste Schlüssel zu entfernen ist: Wähle die Datenstruktur Schlange (engl. Queue ). Wenn Schlüssel Prioritäten besitzen und der Schlüssel mit höchster Priorität zu entfernen ist: Wähle die Datenstruktur Martin Hoefer Datenstrukturen Kapitel Mai / 79

15 Abstrakte Datentypen und Datenstrukturen Ein abstrakter Datentyp ist eine Sammlung von Operationen auf einer Menge von Objekten. Eine Datenstruktur ist eine Implementation eines abstrakten Datentyps Ein Beispiel für häufig auftretende Operationen: das Einfügen und Entfernen von Schlüsseln nach ihrem Alter. Wenn der jüngste Schlüssel zu entfernen ist: Wähle die Datenstruktur Stack. Wenn der älteste Schlüssel zu entfernen ist: Wähle die Datenstruktur Schlange (engl. Queue ). Wenn Schlüssel Prioritäten besitzen und der Schlüssel mit höchster Priorität zu entfernen ist: Wähle die Datenstruktur Heap. Martin Hoefer Datenstrukturen Kapitel Mai / 79

16 Worum geht s? Gegeben sei ein abstrakter Datentyp. Entwerfe eine möglichst effiziente Datenstruktur. Welche abstrakten Datentypen? Martin Hoefer Datenstrukturen Kapitel Mai / 79

17 Worum geht s? Gegeben sei ein abstrakter Datentyp. Entwerfe eine möglichst effiziente Datenstruktur. Welche abstrakten Datentypen? Stack: Einfügen und Entfernen des jüngsten Schlüssels. Warteschlange: Einfügen und Entfernen des ältesten Schlüssels. Prioritätswarteschlange: Einfügen und Entfernen des wichtigsten Schlüssels. Wörterbuch: Einfügen, Entfernen (eines beliebigen Schlüssels) und Suche. Martin Hoefer Datenstrukturen Kapitel Mai / 79

18 Worum geht s? Gegeben sei ein abstrakter Datentyp. Entwerfe eine möglichst effiziente Datenstruktur. Welche abstrakten Datentypen? Stack: Einfügen und Entfernen des jüngsten Schlüssels. Warteschlange: Einfügen und Entfernen des ältesten Schlüssels. Prioritätswarteschlange: Einfügen und Entfernen des wichtigsten Schlüssels. Wörterbuch: Einfügen, Entfernen (eines beliebigen Schlüssels) und Suche. Was heißt Effizienz? Martin Hoefer Datenstrukturen Kapitel Mai / 79

19 Worum geht s? Gegeben sei ein abstrakter Datentyp. Entwerfe eine möglichst effiziente Datenstruktur. Welche abstrakten Datentypen? Stack: Einfügen und Entfernen des jüngsten Schlüssels. Warteschlange: Einfügen und Entfernen des ältesten Schlüssels. Prioritätswarteschlange: Einfügen und Entfernen des wichtigsten Schlüssels. Wörterbuch: Einfügen, Entfernen (eines beliebigen Schlüssels) und Suche. Was heißt Effizienz? Minimiere die Laufzeit und den Speicherplatzverbrauch der einzelnen Operationen. Martin Hoefer Datenstrukturen Kapitel Mai / 79

20 Worum geht s? Gegeben sei ein abstrakter Datentyp. Entwerfe eine möglichst effiziente Datenstruktur. Welche abstrakten Datentypen? Stack: Einfügen und Entfernen des jüngsten Schlüssels. Warteschlange: Einfügen und Entfernen des ältesten Schlüssels. Prioritätswarteschlange: Einfügen und Entfernen des wichtigsten Schlüssels. Wörterbuch: Einfügen, Entfernen (eines beliebigen Schlüssels) und Suche. Was heißt Effizienz? Minimiere die Laufzeit und den Speicherplatzverbrauch der einzelnen Operationen. Wie skalieren die Ressourcen mit wachsender Eingabelänge? Asymptotische Analyse von Laufzeit und Speicherplatzverbrauch Martin Hoefer Datenstrukturen Kapitel Mai / 79

21 Worauf wird aufgebaut? (1) Diskrete Modellierung (bzw. Vorkurs): Vollständige Induktion und allgemeine Beweismethoden. Siehe hierzu auch die Seite des Vorkurs Informatik mit Folien zu Beweistechniken, Induktion und Rekursion und Asymptotik und Laufzeitanalyse. (2) Grundlagen der Programmierung 1: Kenntnis der elementaren Datenstrukturen (3) Lineare Algebra und Analysis: - Logarithmen, - Grenzwerte und - asymptotische Notation. Martin Hoefer Datenstrukturen Kapitel Mai / 79

22 Literatur (1/2) - Skript und Folien zur Vorlesung finden Sie auf der Webseite der Veranstaltung. - Kapitel 3-5, und 18 in T.H. Cormen, C.E. Leiserson, R.L. Rivest, C. Stein, Introduction to Algorithms, second edition, M. T. Goodrich, R. Tamassia, D. M. Mount, Data Structures and Algorithms in C++, M. Dietzfelbinger, K. Mehlhorn, P. Sanders, Algorithmen und Datenstrukturen, die Grundwerkzeuge, Springer Vieweg, R. Sedgewick, Algorithmen in C++, Kapitel 1-7 im Grundlagenteil. - Kapitel 1-3 in J. Kleinberg, E. Tardos, Algorithm Design (GL-1 Textbuch), Pearson New International Edition, Für mathematische Grundlagen: N. Schweikardt, Diskrete Modellierung, eine Einführung in grundlegende Begriffe und Methoden der Theoretischen Informatik, (Kapitel 2,5) D. Grieser, Mathematisches Problemlösen und Beweisen, eine Entdeckungsreise in die Mathematik, Springer Vieweg Martin Hoefer Datenstrukturen Kapitel Mai / 79

23 Literatur (2/2) Sämtliche Textbücher befinden sich auch in der Bibliothek im Semesterapparat der Veranstaltung Datenstrukturen. Die Bibliothek befindet sich im 1. Stock in der Robert-Mayer Strasse Martin Hoefer Datenstrukturen Kapitel Mai / 79

24 Organisatorisches Martin Hoefer Datenstrukturen Kapitel Mai / 79

25 Übungsbetrieb Alle Details auf der Webseite! Anmeldung zu Übungen im AUGE-System bis Donnerstag, Übungsblätter erscheinen im 2-Wochen Rhythmus auf der Webseite. Lösungen (zusammengetackert, mit vollem Namen, Matrikelnummer, und Nummer der Übungsgruppe versehen) sind nach 2-wöchiger Bearbeitungszeit abzugeben: Entweder im H V vor Beginn der Vorlesung oder in den Briefkasten einwerfen zwischen Büros 114 und 115, Robert-Mayer-Str Martin Hoefer Datenstrukturen Kapitel Mai / 79

26 Übungsbetrieb Alle Details auf der Webseite! Anmeldung zu Übungen im AUGE-System bis Donnerstag, Übungsblätter erscheinen im 2-Wochen Rhythmus auf der Webseite. Lösungen (zusammengetackert, mit vollem Namen, Matrikelnummer, und Nummer der Übungsgruppe versehen) sind nach 2-wöchiger Bearbeitungszeit abzugeben: Entweder im H V vor Beginn der Vorlesung oder in den Briefkasten einwerfen zwischen Büros 114 und 115, Robert-Mayer-Str Übungsgruppen treffen sich ab nächste Woche Dienstag, Bis Ende April freie Wahl der Gruppe, ab Mai gemäß Zuordnung. Martin Hoefer Datenstrukturen Kapitel Mai / 79

27 Übungsbetrieb Alle Details auf der Webseite! Anmeldung zu Übungen im AUGE-System bis Donnerstag, Übungsblätter erscheinen im 2-Wochen Rhythmus auf der Webseite. Lösungen (zusammengetackert, mit vollem Namen, Matrikelnummer, und Nummer der Übungsgruppe versehen) sind nach 2-wöchiger Bearbeitungszeit abzugeben: Entweder im H V vor Beginn der Vorlesung oder in den Briefkasten einwerfen zwischen Büros 114 und 115, Robert-Mayer-Str Übungsgruppen treffen sich ab nächste Woche Dienstag, Bis Ende April freie Wahl der Gruppe, ab Mai gemäß Zuordnung. Heute Ausgabe 0. Übungsblatt (ohne Abgabe) und 1. Übungsblatt (Abgabe bis ) Martin Hoefer Datenstrukturen Kapitel Mai / 79

28 Übungsbetrieb Alle Details auf der Webseite! Anmeldung zu Übungen im AUGE-System bis Donnerstag, Übungsblätter erscheinen im 2-Wochen Rhythmus auf der Webseite. Lösungen (zusammengetackert, mit vollem Namen, Matrikelnummer, und Nummer der Übungsgruppe versehen) sind nach 2-wöchiger Bearbeitungszeit abzugeben: Entweder im H V vor Beginn der Vorlesung oder in den Briefkasten einwerfen zwischen Büros 114 und 115, Robert-Mayer-Str Übungsgruppen treffen sich ab nächste Woche Dienstag, Bis Ende April freie Wahl der Gruppe, ab Mai gemäß Zuordnung. Heute Ausgabe 0. Übungsblatt (ohne Abgabe) und 1. Übungsblatt (Abgabe bis ) Übungsaufgaben sollten mit Anderen besprochen werden, aber Lösungen müssen eigenständig aufgeschrieben werden! Martin Hoefer Datenstrukturen Kapitel Mai / 79

29 Klausur Hauptklausur: Montag, 22. Juli 2019, ab 9:00 Uhr. Zweitklausur: Dienstag, 01. Oktober 2019, ab 9:00 Uhr. Die in den Übungen erreichten Punkte werden mit einem Maximalgewicht von 10% zu den Klausurpunkten hinzugezählt: Werden in der Klausur x% und in den Übungen y% erzielt, dann ist z = x + (y/10) die Gesamtpunktzahl. Die Veranstaltung ist bestanden, wenn die Klausur bestanden ist (i.d.r. wenn x 50). Wenn die Klausur bestanden ist, hängt die Note von der Gesamtpunktzahl z ab. Martin Hoefer Datenstrukturen Kapitel Mai / 79

30 Bevor es losgeht... Vor- und Nachbereitung der Vorlesungen Unbedingt am Übungsbetrieb teilnehmen und Aufgaben bearbeiten! Von den Teilnehmern, die 50% der Übungspunkte erreichen, bestehen nahezu 100% auch die Klausur! Teamarbeit vs. Einzelkämpfer Studieren lernen der richtige Umgang mit den Freiheiten Martin Hoefer Datenstrukturen Kapitel Mai / 79

31 Bevor es losgeht... Vor- und Nachbereitung der Vorlesungen Unbedingt am Übungsbetrieb teilnehmen und Aufgaben bearbeiten! Von den Teilnehmern, die 50% der Übungspunkte erreichen, bestehen nahezu 100% auch die Klausur! Teamarbeit vs. Einzelkämpfer Studieren lernen der richtige Umgang mit den Freiheiten Sprechstunde vereinbaren per . Oder versuchen Sie es auf gut Glück (Raum 115). Martin Hoefer Datenstrukturen Kapitel Mai / 79

32 Bevor es losgeht... Vor- und Nachbereitung der Vorlesungen Unbedingt am Übungsbetrieb teilnehmen und Aufgaben bearbeiten! Von den Teilnehmern, die 50% der Übungspunkte erreichen, bestehen nahezu 100% auch die Klausur! Teamarbeit vs. Einzelkämpfer Studieren lernen der richtige Umgang mit den Freiheiten Sprechstunde vereinbaren per . Oder versuchen Sie es auf gut Glück (Raum 115). Helfen Sie uns durch ihre Fragen, Kommentare und Antworten! Die Veranstaltung kann nur durch Interaktion interessant werden. Martin Hoefer Datenstrukturen Kapitel Mai / 79

33 Mathematische Grundlagen Martin Hoefer Datenstrukturen Kapitel Mai / 79

34 Vollständige Induktion Ziel: Zeige die Aussage A(n) für alle natürlichen Zahlen n n 0. Martin Hoefer Datenstrukturen Kapitel Mai / 79

35 Vollständige Induktion Ziel: Zeige die Aussage A(n) für alle natürlichen Zahlen n n 0. Die Methode der vollständigen Induktion 1. Zeige im INDUKTIONSANFANG die Aussage A(n 0 ) und Martin Hoefer Datenstrukturen Kapitel Mai / 79

36 Vollständige Induktion Ziel: Zeige die Aussage A(n) für alle natürlichen Zahlen n n 0. Die Methode der vollständigen Induktion 1. Zeige im INDUKTIONSANFANG die Aussage A(n 0 ) und 2. im INDUKTIONSSCHRITT die Implikation (A(n 0 ) A(n 0 + 1) A(n)) A(n + 1) für jede Zahl n mit n n 0. A(n 0 ) A(n 0 + 1) A(n) heißt Induktionsannahme. Martin Hoefer Datenstrukturen Kapitel Mai / 79

37 Vollständige Induktion Ziel: Zeige die Aussage A(n) für alle natürlichen Zahlen n n 0. Die Methode der vollständigen Induktion 1. Zeige im INDUKTIONSANFANG die Aussage A(n 0 ) und 2. im INDUKTIONSSCHRITT die Implikation (A(n 0 ) A(n 0 + 1) A(n)) A(n + 1) für jede Zahl n mit n n 0. A(n 0 ) A(n 0 + 1) A(n) heißt Induktionsannahme. Häufig nimmt man nur die Aussage A(n) in der Induktionsannahme an. Martin Hoefer Datenstrukturen Kapitel Mai / 79

38 Wiederholung? (1) demogr. Mathematische Grundlagen: Gesucht ist eine kurze Formel für n i i=1 (1) (2) n(n 1) 2 n(n+1) 2 (3) n (4) Hab ich mal irgendwann gelernt... (5) Zahlen als Buchstaben!?!? Martin Hoefer Datenstrukturen Kapitel Mai / 79

39 Wiederholung? (1) demogr. Mathematische Grundlagen: Gesucht ist eine kurze Formel für n i i=1 (1) (2) n(n 1) 2 n(n+1) 2 (3) n (4) Hab ich mal irgendwann gelernt... (5) Zahlen als Buchstaben!?!? Auflösung: Martin Hoefer Datenstrukturen Kapitel Mai / 79

40 Wiederholung? (1) demogr. Mathematische Grundlagen: Gesucht ist eine kurze Formel für n i i=1 (1) (2) n(n 1) 2 n(n+1) 2 (3) n (4) Hab ich mal irgendwann gelernt... (5) Zahlen als Buchstaben!?!? Auflösung: (2) n(n+1) 2 Martin Hoefer Datenstrukturen Kapitel Mai / 79

41 Wiederholung? (1) demogr. Mathematische Grundlagen: Gesucht ist eine kurze Formel für n i i=1 (1) (2) n(n 1) 2 n(n+1) 2 (3) n (4) Hab ich mal irgendwann gelernt... (5) Zahlen als Buchstaben!?!? Auflösung: (2) n(n+1) 2 (wie beweist man das?) Martin Hoefer Datenstrukturen Kapitel Mai / 79

42 Die Summe der ersten n Zahlen n i = n = i=1 n (n + 1) 2. Martin Hoefer Datenstrukturen Kapitel Mai / 79

43 Die Summe der ersten n Zahlen n i = n = i=1 n (n + 1) 2 Vollständige Induktion nach n:. Martin Hoefer Datenstrukturen Kapitel Mai / 79

44 Die Summe der ersten n Zahlen n i = n = i=1 n (n + 1) 2 Vollständige Induktion nach n: Induktionsanfang für n = 1:. Martin Hoefer Datenstrukturen Kapitel Mai / 79

45 Die Summe der ersten n Zahlen n i = n = i=1 n (n + 1) 2 Vollständige Induktion nach n: Induktionsanfang für n = 1: 1 i=1 i = 1. Martin Hoefer Datenstrukturen Kapitel Mai / 79

46 Die Summe der ersten n Zahlen n i = n = i=1 n (n + 1) 2 Vollständige Induktion nach n: Induktionsanfang für n = 1: 1 1 (1+1) i=1 i = 1 und 2 = 1.. Martin Hoefer Datenstrukturen Kapitel Mai / 79

47 Die Summe der ersten n Zahlen n i = n = i=1 n (n + 1) 2 Vollständige Induktion nach n: Induktionsanfang für n = 1: 1 1 (1+1) i=1 i = 1 und 2 = 1.. Martin Hoefer Datenstrukturen Kapitel Mai / 79

48 Die Summe der ersten n Zahlen n i = n = i=1 n (n + 1) 2 Vollständige Induktion nach n: Induktionsanfang für n = 1: 1 1 (1+1) i=1 i = 1 und 2 = 1. Induktionsschritt von n auf n + 1:. Martin Hoefer Datenstrukturen Kapitel Mai / 79

49 Die Summe der ersten n Zahlen n i = n = i=1 n (n + 1) 2 Vollständige Induktion nach n: Induktionsanfang für n = 1: 1 1 (1+1) i=1 i = 1 und 2 = 1. Induktionsschritt von n auf n + 1: Wir nehmen an, dass n i=1 i = n (n+1) gilt. 2. Martin Hoefer Datenstrukturen Kapitel Mai / 79

50 Die Summe der ersten n Zahlen n i = n = i=1 n (n + 1) 2 Vollständige Induktion nach n: Induktionsanfang für n = 1: 1 1 (1+1) i=1 i = 1 und 2 = 1. Induktionsschritt von n auf n + 1: Wir nehmen an, dass n i=1 i = n (n+1) gilt. 2 n+1 i=1 i =. Martin Hoefer Datenstrukturen Kapitel Mai / 79

51 Die Summe der ersten n Zahlen n i = n = i=1 n (n + 1) 2 Vollständige Induktion nach n: Induktionsanfang für n = 1: 1 1 (1+1) i=1 i = 1 und 2 = 1. Induktionsschritt von n auf n + 1: Wir nehmen an, dass n i=1 i = n (n+1) gilt. 2 n+1 i=1 i = n i=1 i + (n + 1) =. Martin Hoefer Datenstrukturen Kapitel Mai / 79

52 Die Summe der ersten n Zahlen n i = n = i=1 n (n + 1) 2 Vollständige Induktion nach n: Induktionsanfang für n = 1: 1 1 (1+1) i=1 i = 1 und 2 = 1. Induktionsschritt von n auf n + 1: Wir nehmen an, dass n i=1 i = n (n+1) gilt. 2 n+1 i=1 i = n n (n+1) i=1 i + (n + 1) = + (n + 1) = 2. Martin Hoefer Datenstrukturen Kapitel Mai / 79

53 Die Summe der ersten n Zahlen n i = n = i=1 n (n + 1) 2 Vollständige Induktion nach n: Induktionsanfang für n = 1: 1 i=1 Induktionsschritt von n auf n + 1: Wir nehmen an, dass n i=1 i = n (n+1) gilt. 2 n+1 i=1 i = n i=1. i = 1 und 1 (1+1) 2 = 1. i + (n + 1) = n (n+1) 2 + (n + 1) = n (n+1)+2 (n+1) 2 = Martin Hoefer Datenstrukturen Kapitel Mai / 79

54 Die Summe der ersten n Zahlen n i = n = i=1 n (n + 1) 2 Vollständige Induktion nach n: Induktionsanfang für n = 1: 1 i=1 Induktionsschritt von n auf n + 1: Wir nehmen an, dass n i=1 i = n (n+1) gilt. 2 n+1 i=1 i = n i=1. i = 1 und 1 (1+1) 2 = 1. i + (n + 1) = n (n+1) 2 + (n + 1) = n (n+1)+2 (n+1) 2 = (n+2) (n+1) 2 = Martin Hoefer Datenstrukturen Kapitel Mai / 79

55 Die Summe der ersten n Zahlen n i = n = i=1 n (n + 1) 2 Vollständige Induktion nach n: Induktionsanfang für n = 1: 1 1 (1+1) i=1 i = 1 und 2 = 1. Induktionsschritt von n auf n + 1: Wir nehmen an, dass n i=1 i = n (n+1) gilt. 2 n+1 i=1 i = n (n+1) (n+2) 2 i=1. i + (n + 1) = n (n+1) 2 + (n + 1) = n (n+1)+2 (n+1) 2 = (n+2) (n+1) 2 = Martin Hoefer Datenstrukturen Kapitel Mai / 79

56 Die Summe der ersten n Zahlen n i = n = i=1 n (n + 1) 2. Vollständige Induktion nach n: Induktionsanfang für n = 1: 1 1 (1+1) i=1 i = 1 und 2 = 1. Induktionsschritt von n auf n + 1: Wir nehmen an, dass n i=1 i = n (n+1) gilt. 2 n+1 i=1 i = n n (n+1) i=1 i + (n + 1) = + (n + 1) = n (n+1)+2 (n+1) = (n+2) (n+1) = (n+1) (n+2) und das war zu zeigen. 2 Martin Hoefer Datenstrukturen Kapitel Mai / 79

57 Die Summe der ersten n Zahlen n i = n = i=1 n (n + 1) 2. Vollständige Induktion nach n: Induktionsanfang für n = 1: 1 1 (1+1) i=1 i = 1 und 2 = 1. Induktionsschritt von n auf n + 1: Wir nehmen an, dass n i=1 i = n (n+1) gilt. 2 n+1 i=1 i = n n (n+1) i=1 i + (n + 1) = + (n + 1) = n (n+1)+2 (n+1) = (n+2) (n+1) = (n+1) (n+2) und das war zu zeigen. 2 Ein direkter Beweis: Martin Hoefer Datenstrukturen Kapitel Mai / 79

58 Die Summe der ersten n Zahlen n i = n = i=1 n (n + 1) 2. Vollständige Induktion nach n: Induktionsanfang für n = 1: 1 1 (1+1) i=1 i = 1 und 2 = 1. Induktionsschritt von n auf n + 1: Wir nehmen an, dass n i=1 i = n (n+1) gilt. 2 n+1 i=1 i = n n (n+1) i=1 i + (n + 1) = + (n + 1) = n (n+1)+2 (n+1) = (n+2) (n+1) = (n+1) (n+2) und das war zu zeigen. 2 Ein direkter Beweis: Betrachte ein Gitter mit n Zeilen und n Spalten: Martin Hoefer Datenstrukturen Kapitel Mai / 79

59 Die Summe der ersten n Zahlen n i = n = i=1 n (n + 1) 2. Vollständige Induktion nach n: Induktionsanfang für n = 1: 1 1 (1+1) i=1 i = 1 und 2 = 1. Induktionsschritt von n auf n + 1: Wir nehmen an, dass n i=1 i = n (n+1) gilt. 2 n+1 i=1 i = n n (n+1) i=1 i + (n + 1) = + (n + 1) = n (n+1)+2 (n+1) = (n+2) (n+1) = (n+1) (n+2) und das war zu zeigen. 2 Ein direkter Beweis: Betrachte ein Gitter mit n Zeilen und n Spalten: n 2 Gitterpunkte. Martin Hoefer Datenstrukturen Kapitel Mai / 79

60 Die Summe der ersten n Zahlen n i = n = i=1 n (n + 1) 2. Vollständige Induktion nach n: Induktionsanfang für n = 1: 1 1 (1+1) i=1 i = 1 und 2 = 1. Induktionsschritt von n auf n + 1: Wir nehmen an, dass n i=1 i = n (n+1) gilt. 2 n+1 i=1 i = n n (n+1) i=1 i + (n + 1) = + (n + 1) = n (n+1)+2 (n+1) = (n+2) (n+1) = (n+1) (n+2) und das war zu zeigen. 2 Ein direkter Beweis: Betrachte ein Gitter mit n Zeilen und n Spalten: n 2 Gitterpunkte. Wir müssen die Gitterpunkte unterhalb der Hauptdiagonale und auf der Hauptdiagonale zählen. Martin Hoefer Datenstrukturen Kapitel Mai / 79

61 Die Summe der ersten n Zahlen n i = n = i=1 n (n + 1) 2. Vollständige Induktion nach n: Induktionsanfang für n = 1: 1 1 (1+1) i=1 i = 1 und 2 = 1. Induktionsschritt von n auf n + 1: Wir nehmen an, dass n i=1 i = n (n+1) gilt. 2 n+1 i=1 i = n n (n+1) i=1 i + (n + 1) = + (n + 1) = n (n+1)+2 (n+1) = (n+2) (n+1) = (n+1) (n+2) und das war zu zeigen. 2 Ein direkter Beweis: Betrachte ein Gitter mit n Zeilen und n Spalten: n 2 Gitterpunkte. Wir müssen die Gitterpunkte unterhalb der Hauptdiagonale und auf der Hauptdiagonale zählen. Die Hauptdiagonale besitzt n Gitterpunkte Martin Hoefer Datenstrukturen Kapitel Mai / 79

62 Die Summe der ersten n Zahlen n i = n = i=1 n (n + 1) 2. Vollständige Induktion nach n: Induktionsanfang für n = 1: 1 1 (1+1) i=1 i = 1 und 2 = 1. Induktionsschritt von n auf n + 1: Wir nehmen an, dass n i=1 i = n (n+1) gilt. 2 n+1 i=1 i = n n (n+1) i=1 i + (n + 1) = + (n + 1) = n (n+1)+2 (n+1) = (n+2) (n+1) = (n+1) (n+2) und das war zu zeigen. 2 Ein direkter Beweis: Betrachte ein Gitter mit n Zeilen und n Spalten: n 2 Gitterpunkte. Wir müssen die Gitterpunkte unterhalb der Hauptdiagonale und auf der Hauptdiagonale zählen. Die Hauptdiagonale besitzt n Gitterpunkte und unterhalb der Hauptdiagonale befindet sich die Hälfte der verbleibenden n 2 n Gitterpunkte. Martin Hoefer Datenstrukturen Kapitel Mai / 79

63 Die Summe der ersten n Zahlen n i = n = i=1 n (n + 1) 2. Vollständige Induktion nach n: Induktionsanfang für n = 1: 1 1 (1+1) i=1 i = 1 und 2 = 1. Induktionsschritt von n auf n + 1: Wir nehmen an, dass n i=1 i = n (n+1) gilt. 2 n+1 i=1 i = n n (n+1) i=1 i + (n + 1) = + (n + 1) = n (n+1)+2 (n+1) = (n+2) (n+1) = (n+1) (n+2) und das war zu zeigen. 2 Ein direkter Beweis: Betrachte ein Gitter mit n Zeilen und n Spalten: n 2 Gitterpunkte. Wir müssen die Gitterpunkte unterhalb der Hauptdiagonale und auf der Hauptdiagonale zählen. Die Hauptdiagonale besitzt n Gitterpunkte und unterhalb der Hauptdiagonale befindet sich die Hälfte der verbleibenden n 2 n Gitterpunkte. Also folgt n i=1 i = Martin Hoefer Datenstrukturen Kapitel Mai / 79

64 Die Summe der ersten n Zahlen n i = n = i=1 n (n + 1) 2. Vollständige Induktion nach n: Induktionsanfang für n = 1: 1 1 (1+1) i=1 i = 1 und 2 = 1. Induktionsschritt von n auf n + 1: Wir nehmen an, dass n i=1 i = n (n+1) gilt. 2 n+1 i=1 i = n n (n+1) i=1 i + (n + 1) = + (n + 1) = n (n+1)+2 (n+1) = (n+2) (n+1) = (n+1) (n+2) und das war zu zeigen. 2 Ein direkter Beweis: Betrachte ein Gitter mit n Zeilen und n Spalten: n 2 Gitterpunkte. Wir müssen die Gitterpunkte unterhalb der Hauptdiagonale und auf der Hauptdiagonale zählen. Die Hauptdiagonale besitzt n Gitterpunkte und unterhalb der Hauptdiagonale befindet sich die Hälfte der verbleibenden n 2 n Gitterpunkte. Also folgt n i=1 i = n + Martin Hoefer Datenstrukturen Kapitel Mai / 79

65 Die Summe der ersten n Zahlen n i = n = i=1 n (n + 1) 2. Vollständige Induktion nach n: Induktionsanfang für n = 1: 1 1 (1+1) i=1 i = 1 und 2 = 1. Induktionsschritt von n auf n + 1: Wir nehmen an, dass n i=1 i = n (n+1) gilt. 2 n+1 i=1 i = n n (n+1) i=1 i + (n + 1) = + (n + 1) = n (n+1)+2 (n+1) = (n+2) (n+1) = (n+1) (n+2) und das war zu zeigen. 2 Ein direkter Beweis: Betrachte ein Gitter mit n Zeilen und n Spalten: n 2 Gitterpunkte. Wir müssen die Gitterpunkte unterhalb der Hauptdiagonale und auf der Hauptdiagonale zählen. Die Hauptdiagonale besitzt n Gitterpunkte und unterhalb der Hauptdiagonale befindet sich die Hälfte der verbleibenden n 2 n Gitterpunkte. Also folgt n i=1 i = n + n2 n 2 Martin Hoefer Datenstrukturen Kapitel Mai / 79

66 Die Summe der ersten n Zahlen n i = n = i=1 n (n + 1) 2. Vollständige Induktion nach n: Induktionsanfang für n = 1: 1 1 (1+1) i=1 i = 1 und 2 = 1. Induktionsschritt von n auf n + 1: Wir nehmen an, dass n i=1 i = n (n+1) gilt. 2 n+1 i=1 i = n n (n+1) i=1 i + (n + 1) = + (n + 1) = n (n+1)+2 (n+1) = (n+2) (n+1) = (n+1) (n+2) und das war zu zeigen. 2 Ein direkter Beweis: Betrachte ein Gitter mit n Zeilen und n Spalten: n 2 Gitterpunkte. Wir müssen die Gitterpunkte unterhalb der Hauptdiagonale und auf der Hauptdiagonale zählen. Die Hauptdiagonale besitzt n Gitterpunkte und unterhalb der Hauptdiagonale befindet sich die Hälfte der verbleibenden n 2 n Gitterpunkte. Also folgt n i=1 i = n + n2 n = n (n+1). 2 2 Martin Hoefer Datenstrukturen Kapitel Mai / 79

67 Wiederholung? (2) demogr. Mathematische Grundlagen: Gesucht ist eine kurze Formel für n a i mit a 1. i=1 (1) 2 a n (2) a n+2 1 n a (3) n+1 1 a 1 a n (n 1) (4) 2 (5) Keine Ahnung... Martin Hoefer Datenstrukturen Kapitel Mai / 79

68 Wiederholung? (2) demogr. Mathematische Grundlagen: Gesucht ist eine kurze Formel für n a i mit a 1. i=1 (1) 2 a n (2) a n+2 1 n a (3) n+1 1 a 1 a n (n 1) (4) 2 (5) Keine Ahnung... Auflösung: Martin Hoefer Datenstrukturen Kapitel Mai / 79

69 Wiederholung? (2) demogr. Mathematische Grundlagen: Gesucht ist eine kurze Formel für n a i mit a 1. i=1 (1) 2 a n (2) a n+2 1 n a (3) n+1 1 a 1 a n (n 1) (4) 2 (5) Keine Ahnung... Auflösung: (3) a n+1 1 a 1 Martin Hoefer Datenstrukturen Kapitel Mai / 79

70 Wiederholung? (2) demogr. Mathematische Grundlagen: Gesucht ist eine kurze Formel für n a i mit a 1. i=1 (1) 2 a n (2) a n+2 1 n a (3) n+1 1 a 1 a n (n 1) (4) 2 (5) Keine Ahnung... Auflösung: (3) a n+1 1 a 1 (wie beweist man das?) Martin Hoefer Datenstrukturen Kapitel Mai / 79

71 Die geometrische Reihe n i=0 a i = an+1 1 a 1 falls a 1. Martin Hoefer Datenstrukturen Kapitel Mai / 79

72 Die geometrische Reihe n i=0 a i = an+1 1 a 1 falls a 1. Vollständige Induktion nach n: Martin Hoefer Datenstrukturen Kapitel Mai / 79

73 Die geometrische Reihe n i=0 a i = an+1 1 a 1 falls a 1. Vollständige Induktion nach n: Induktionsanfang für n = 0: Martin Hoefer Datenstrukturen Kapitel Mai / 79

74 Die geometrische Reihe n i=0 a i = an+1 1 a 1 falls a 1. Vollständige Induktion nach n: Induktionsanfang für n = 0: 0 i=0 ai = 1 Martin Hoefer Datenstrukturen Kapitel Mai / 79

75 Die geometrische Reihe n i=0 a i = an+1 1 a 1 falls a 1. Vollständige Induktion nach n: Induktionsanfang für n = 0: 0 i=0 ai = 1 und a0+1 1 a 1 = 1. Martin Hoefer Datenstrukturen Kapitel Mai / 79

76 Die geometrische Reihe n i=0 a i = an+1 1 a 1 falls a 1. Vollständige Induktion nach n: Induktionsanfang für n = 0: 0 i=0 ai = 1 und a0+1 1 a 1 = 1. Induktionsschritt von n auf n + 1: Martin Hoefer Datenstrukturen Kapitel Mai / 79

77 Die geometrische Reihe n i=0 a i = an+1 1 a 1 falls a 1. Vollständige Induktion nach n: Induktionsanfang für n = 0: 0 i=0 ai = 1 und a0+1 1 a 1 = 1. Induktionsschritt von n auf n + 1: Wir können annehmen, dass n i=0 ai = an+1 1 gilt. a 1 Martin Hoefer Datenstrukturen Kapitel Mai / 79

78 Die geometrische Reihe n i=0 a i = an+1 1 a 1 falls a 1. Vollständige Induktion nach n: Induktionsanfang für n = 0: 0 i=0 ai = 1 und a0+1 1 a 1 = 1. Induktionsschritt von n auf n + 1: Wir können annehmen, dass n i=0 ai = an+1 1 gilt. Dann ist n+1 i=0 ai a 1 Martin Hoefer Datenstrukturen Kapitel Mai / 79

79 Die geometrische Reihe n i=0 a i = an+1 1 a 1 falls a 1. Vollständige Induktion nach n: Induktionsanfang für n = 0: 0 i=0 ai = 1 und a0+1 1 a 1 = 1. Induktionsschritt von n auf n + 1: Wir können annehmen, dass n i=0 ai = an+1 1 gilt. Dann ist a 1 n+1 i=0 ai = n i=0 ai + a n+1 Martin Hoefer Datenstrukturen Kapitel Mai / 79

80 Die geometrische Reihe n i=0 a i = an+1 1 a 1 falls a 1. Vollständige Induktion nach n: Induktionsanfang für n = 0: 0 i=0 ai = 1 und a0+1 1 a 1 = 1. Induktionsschritt von n auf n + 1: Wir können annehmen, dass n i=0 ai = an+1 1 gilt. Dann ist a 1 n+1 i=0 ai = n i=0 ai + a n+1 = an a n+1 a 1 Martin Hoefer Datenstrukturen Kapitel Mai / 79

81 Die geometrische Reihe n i=0 a i = an+1 1 a 1 falls a 1. Vollständige Induktion nach n: Induktionsanfang für n = 0: 0 i=0 ai = 1 und a0+1 1 a 1 = 1. Induktionsschritt von n auf n + 1: Wir können annehmen, dass n i=0 ai = an+1 1 gilt. Dann ist a 1 n+1 i=0 ai = n i=0 ai + a n+1 = an a n+1 = an+1 1+a n+2 a n+1 a 1 a 1 Martin Hoefer Datenstrukturen Kapitel Mai / 79

82 Die geometrische Reihe n i=0 a i = an+1 1 a 1 falls a 1. Vollständige Induktion nach n: Induktionsanfang für n = 0: 0 i=0 ai = 1 und a0+1 1 a 1 = 1. Induktionsschritt von n auf n + 1: Wir können annehmen, dass n i=0 ai = an+1 1 gilt. Dann ist a 1 n+1 i=0 ai = n i=0 ai + a n+1 = an a n+1 = an+1 1+a n+2 a n+1 a 1 a 1 das war zu zeigen. = an+2 1 a 1 und Martin Hoefer Datenstrukturen Kapitel Mai / 79

83 Die geometrische Reihe n i=0 a i = an+1 1 a 1 falls a 1. Vollständige Induktion nach n: Induktionsanfang für n = 0: 0 i=0 ai = 1 und a0+1 1 a 1 = 1. Induktionsschritt von n auf n + 1: Wir können annehmen, dass n i=0 ai = an+1 1 gilt. Dann ist a 1 n+1 i=0 ai = n i=0 ai + a n+1 = an a n+1 = an+1 1+a n+2 a n+1 a 1 a 1 das war zu zeigen. Ein direkter Beweis: = an+2 1 a 1 und Martin Hoefer Datenstrukturen Kapitel Mai / 79

84 Die geometrische Reihe n i=0 a i = an+1 1 a 1 falls a 1. Vollständige Induktion nach n: Induktionsanfang für n = 0: 0 i=0 ai = 1 und a0+1 1 a 1 = 1. Induktionsschritt von n auf n + 1: Wir können annehmen, dass n i=0 ai = an+1 1 gilt. Dann ist a 1 n+1 i=0 ai = n i=0 ai + a n+1 = an a n+1 = an+1 1+a n+2 a n+1 a 1 a 1 das war zu zeigen. Ein direkter Beweis: (a 1) n i=0 ai = a n i=0 ai n i=0 ai = an+2 1 a 1 und Martin Hoefer Datenstrukturen Kapitel Mai / 79

85 Die geometrische Reihe n i=0 a i = an+1 1 a 1 falls a 1. Vollständige Induktion nach n: Induktionsanfang für n = 0: 0 i=0 ai = 1 und a0+1 1 a 1 = 1. Induktionsschritt von n auf n + 1: Wir können annehmen, dass n i=0 ai = an+1 1 gilt. Dann ist a 1 n+1 i=0 ai = n i=0 ai + a n+1 = an a n+1 = an+1 1+a n+2 a n+1 a 1 a 1 das war zu zeigen. Ein direkter Beweis: (a 1) n i=0 ai = a n i=0 ai n i=0 ai = n+1 i=0 ai n i=0 ai = = an+2 1 a 1 und Martin Hoefer Datenstrukturen Kapitel Mai / 79

86 Die geometrische Reihe n i=0 a i = an+1 1 a 1 falls a 1. Vollständige Induktion nach n: Induktionsanfang für n = 0: 0 i=0 ai = 1 und a0+1 1 a 1 = 1. Induktionsschritt von n auf n + 1: Wir können annehmen, dass n i=0 ai = an+1 1 gilt. Dann ist a 1 n+1 i=0 ai = n i=0 ai + a n+1 = an a n+1 = an+1 1+a n+2 a n+1 a 1 a 1 das war zu zeigen. Ein direkter Beweis: (a 1) n i=0 ai = a n i=0 ai n i=0 ai = n+1 i=0 ai n i=0 ai = a n+1 a 0 = an+2 1 a 1 und Martin Hoefer Datenstrukturen Kapitel Mai / 79

87 Die geometrische Reihe n i=0 a i = an+1 1 a 1 falls a 1. Vollständige Induktion nach n: Induktionsanfang für n = 0: 0 i=0 ai = 1 und a0+1 1 a 1 = 1. Induktionsschritt von n auf n + 1: Wir können annehmen, dass n i=0 ai = an+1 1 gilt. Dann ist a 1 n+1 i=0 ai = n i=0 ai + a n+1 = an a n+1 = an+1 1+a n+2 a n+1 a 1 a 1 das war zu zeigen. Ein direkter Beweis: = an+2 1 a 1 (a 1) n i=0 ai = a n i=0 ai n i=0 ai = n+1 i=0 ai n i=0 ai = a n+1 a 0 = a n+1 1 und das war zu zeigen. und Martin Hoefer Datenstrukturen Kapitel Mai / 79

88 Binärsuche Martin Hoefer Datenstrukturen Kapitel Mai / 79

89 Binärsuche Ein Array von n Zahlen und eine Zahl A = (A[1],..., A[n]) ist gegeben: Wir möchten wissen, ob und wenn ja wo die Zahl x in A vorkommt. x Martin Hoefer Datenstrukturen Kapitel Mai / 79

90 Binärsuche Ein Array von n Zahlen und eine Zahl A = (A[1],..., A[n]) ist gegeben: Wir möchten wissen, ob und wenn ja wo die Zahl x in A vorkommt. x Wenn A nicht sortiert ist, dann wird die lineare Suche bis zu n Zellen des Arrays inspizieren. Wenn das Array aber aufsteigend sortiert ist, dann können wir Binärsuche anwenden. Martin Hoefer Datenstrukturen Kapitel Mai / 79

91 Binärsuche: Das Programm void Binärsuche( int unten, int oben){ if (oben < unten) std::cout «x «wurde nicht gefunden. «std::endl; Martin Hoefer Datenstrukturen Kapitel Mai / 79

92 Binärsuche: Das Programm void Binärsuche( int unten, int oben){ if (oben < unten) std::cout «x «wurde nicht gefunden. «std::endl; int mitte = (unten+oben)/2; if (A[mitte] == x) std::cout «x «wurde in Position «mitte «gefunden. «std::endl; Martin Hoefer Datenstrukturen Kapitel Mai / 79

93 Binärsuche: Das Programm void Binärsuche( int unten, int oben){ if (oben < unten) std::cout «x «wurde nicht gefunden. «std::endl; int mitte = (unten+oben)/2; if (A[mitte] == x) std::cout «x «wurde in Position «mitte «gefunden. «std::endl; else { if (x < A[mitte]) Binärsuche(unten, mitte-1); else Binärsuche(mitte+1,oben);}} Wir sagen, dass Zelle im ersten Aufruf inspiziert wird. A[mitte] Martin Hoefer Datenstrukturen Kapitel Mai / 79

94 Binärsuche: Korrektheit Wir zeigen durch vollständige Induktion nach n = oben unten + 1, dass der Aufruf Binärsuche(unten,oben) das korrekte Ergebnis liefert. Induktionsanfang für n = 0: Martin Hoefer Datenstrukturen Kapitel Mai / 79

95 Binärsuche: Korrektheit Wir zeigen durch vollständige Induktion nach n = oben unten + 1, dass der Aufruf Binärsuche(unten,oben) das korrekte Ergebnis liefert. Induktionsanfang für n = 0: Es ist n = oben unten + 1 = 0 oben < unten. Binärsuche(unten, oben) bricht ab mit der Antwort x wurde nicht gefunden. Martin Hoefer Datenstrukturen Kapitel Mai / 79

96 Binärsuche: Korrektheit Wir zeigen durch vollständige Induktion nach n = oben unten + 1, dass der Aufruf Binärsuche(unten,oben) das korrekte Ergebnis liefert. Induktionsanfang für n = 0: Es ist n = oben unten + 1 = 0 oben < unten. Binärsuche(unten, oben) bricht ab mit der Antwort x wurde nicht gefunden. Induktionsschritt n n + 1: Es ist oben unten + 1 = n + 1. Martin Hoefer Datenstrukturen Kapitel Mai / 79

97 Binärsuche: Korrektheit Wir zeigen durch vollständige Induktion nach n = oben unten + 1, dass der Aufruf Binärsuche(unten,oben) das korrekte Ergebnis liefert. Induktionsanfang für n = 0: Es ist n = oben unten + 1 = 0 oben < unten. Binärsuche(unten, oben) bricht ab mit der Antwort x wurde nicht gefunden. Induktionsschritt n n + 1: Es ist oben unten + 1 = n + 1. Wenn A(mitte) = x, dann Martin Hoefer Datenstrukturen Kapitel Mai / 79

98 Binärsuche: Korrektheit Wir zeigen durch vollständige Induktion nach n = oben unten + 1, dass der Aufruf Binärsuche(unten,oben) das korrekte Ergebnis liefert. Induktionsanfang für n = 0: Es ist n = oben unten + 1 = 0 oben < unten. Binärsuche(unten, oben) bricht ab mit der Antwort x wurde nicht gefunden. Induktionsschritt n n + 1: Es ist oben unten + 1 = n + 1. Wenn A(mitte) = x, dann wird mit Erfolgsmeldung abgebrochen. Ansonsten, wenn x < A[mitte], Martin Hoefer Datenstrukturen Kapitel Mai / 79

99 Binärsuche: Korrektheit Wir zeigen durch vollständige Induktion nach n = oben unten + 1, dass der Aufruf Binärsuche(unten,oben) das korrekte Ergebnis liefert. Induktionsanfang für n = 0: Es ist n = oben unten + 1 = 0 oben < unten. Binärsuche(unten, oben) bricht ab mit der Antwort x wurde nicht gefunden. Induktionsschritt n n + 1: Es ist oben unten + 1 = n + 1. Wenn A(mitte) = x, dann wird mit Erfolgsmeldung abgebrochen. Ansonsten, wenn x < A[mitte], sucht Binärsuche richtigerweise in der linken Hälfte und sonst in der rechten Hälfte. Die rekursive Suche in der linken bzw. rechten Hälfte verläuft aber nach Induktionsannahme korrekt. Martin Hoefer Datenstrukturen Kapitel Mai / 79

100 Wiederholung? (3) demogr. Wie groß ist die maximale Anzahl inspizierter Zellen in der Binärsuche in einem Array mit n = 2 k 1 Zellen? (1) n (2) n k (3) k (4) k (5) Nur Kleingeister suchen, das Genie beherrscht das Chaos! Martin Hoefer Datenstrukturen Kapitel Mai / 79

101 Wiederholung? (3) demogr. Wie groß ist die maximale Anzahl inspizierter Zellen in der Binärsuche in einem Array mit n = 2 k 1 Zellen? (1) n (2) n k (3) k (4) k (5) Nur Kleingeister suchen, das Genie beherrscht das Chaos! Auflösung: Martin Hoefer Datenstrukturen Kapitel Mai / 79

102 Wiederholung? (3) demogr. Wie groß ist die maximale Anzahl inspizierter Zellen in der Binärsuche in einem Array mit n = 2 k 1 Zellen? (1) n (2) n k (3) k (4) k (5) Nur Kleingeister suchen, das Genie beherrscht das Chaos! Auflösung: (4) k Martin Hoefer Datenstrukturen Kapitel Mai / 79

103 Wiederholung? (3) demogr. Wie groß ist die maximale Anzahl inspizierter Zellen in der Binärsuche in einem Array mit n = 2 k 1 Zellen? (1) n (2) n k (3) k (4) k (5) Nur Kleingeister suchen, das Genie beherrscht das Chaos! Auflösung: (4) k (wie beweist man das?) Martin Hoefer Datenstrukturen Kapitel Mai / 79

104 Binärsuche: Die Laufzeit Wie groß ist T (n) := maximale Anzahl inspizierter Zellen für ein Array mit n Zellen, für n = 2 k 1? Hier ist eine rekursive Definition von T (n): - Rekursionsanfang: T (0) := Martin Hoefer Datenstrukturen Kapitel Mai / 79

105 Binärsuche: Die Laufzeit Wie groß ist T (n) := maximale Anzahl inspizierter Zellen für ein Array mit n Zellen, für n = 2 k 1? Hier ist eine rekursive Definition von T (n): - Rekursionsanfang: T (0) := 0. - Rekursionsschritt: T (n) := Martin Hoefer Datenstrukturen Kapitel Mai / 79

106 Binärsuche: Die Laufzeit Wie groß ist T (n) := maximale Anzahl inspizierter Zellen für ein Array mit n Zellen, für n = 2 k 1? Hier ist eine rekursive Definition von T (n): - Rekursionsanfang: T (0) := 0. - Rekursionsschritt: T (n) := T ( n 1 2 ) + 1. Martin Hoefer Datenstrukturen Kapitel Mai / 79

107 Binärsuche: Die Laufzeit Wie groß ist T (n) := maximale Anzahl inspizierter Zellen für ein Array mit n Zellen, für n = 2 k 1? Hier ist eine rekursive Definition von T (n): - Rekursionsanfang: T (0) := 0. - Rekursionsschritt: T (n) := T ( n 1 2 ) Wir haben n = 2 k 1 gefordert. Beachte: n 1 2 = 2k 2 2 = 2 k Wir zeigen T (2 k 1) = Martin Hoefer Datenstrukturen Kapitel Mai / 79

108 Binärsuche: Die Laufzeit Wie groß ist T (n) := maximale Anzahl inspizierter Zellen für ein Array mit n Zellen, für n = 2 k 1? Hier ist eine rekursive Definition von T (n): - Rekursionsanfang: T (0) := 0. - Rekursionsschritt: T (n) := T ( n 1 2 ) Wir haben n = 2 k 1 gefordert. Beachte: n 1 2 = 2k 2 2 = 2 k Wir zeigen T (2 k 1) = k mit vollständiger Induktion nach k. Induktionsanfang: T (2 0 1) = T (0) = 0. Martin Hoefer Datenstrukturen Kapitel Mai / 79

109 Binärsuche: Die Laufzeit Wie groß ist T (n) := maximale Anzahl inspizierter Zellen für ein Array mit n Zellen, für n = 2 k 1? Hier ist eine rekursive Definition von T (n): - Rekursionsanfang: T (0) := 0. - Rekursionsschritt: T (n) := T ( n 1 2 ) Wir haben n = 2 k 1 gefordert. Beachte: n 1 2 = 2k 2 2 = 2 k Wir zeigen T (2 k 1) = k mit vollständiger Induktion nach k. Induktionsanfang: T (2 0 1) = T (0) = 0. Induktionsschritt: T (2 k+1 1) = Martin Hoefer Datenstrukturen Kapitel Mai / 79

110 Binärsuche: Die Laufzeit Wie groß ist T (n) := maximale Anzahl inspizierter Zellen für ein Array mit n Zellen, für n = 2 k 1? Hier ist eine rekursive Definition von T (n): - Rekursionsanfang: T (0) := 0. - Rekursionsschritt: T (n) := T ( n 1 2 ) Wir haben n = 2 k 1 gefordert. Beachte: n 1 2 = 2k 2 2 = 2 k Wir zeigen T (2 k 1) = k mit vollständiger Induktion nach k. Induktionsanfang: T (2 0 1) = T (0) = 0. Induktionsschritt: T (2 k+1 1) = T (2 k 1) + 1 Martin Hoefer Datenstrukturen Kapitel Mai / 79

111 Binärsuche: Die Laufzeit Wie groß ist T (n) := maximale Anzahl inspizierter Zellen für ein Array mit n Zellen, für n = 2 k 1? Hier ist eine rekursive Definition von T (n): - Rekursionsanfang: T (0) := 0. - Rekursionsschritt: T (n) := T ( n 1 2 ) Wir haben n = 2 k 1 gefordert. Beachte: n 1 2 = 2k 2 2 = 2 k Wir zeigen T (2 k 1) = k mit vollständiger Induktion nach k. Induktionsanfang: T (2 0 1) = T (0) = 0. Induktionsschritt: T (2 k+1 1) = T (2 k 1) + 1 Induktionsannahme = k + 1. Martin Hoefer Datenstrukturen Kapitel Mai / 79

112 Binärsuche: Die Laufzeit Wie groß ist T (n) := maximale Anzahl inspizierter Zellen für ein Array mit n Zellen, für n = 2 k 1? Hier ist eine rekursive Definition von T (n): - Rekursionsanfang: T (0) := 0. - Rekursionsschritt: T (n) := T ( n 1 2 ) Wir haben n = 2 k 1 gefordert. Beachte: n 1 2 = 2k 2 2 = 2 k Wir zeigen T (2 k 1) = k mit vollständiger Induktion nach k. Induktionsanfang: T (2 0 1) = T (0) = 0. Induktionsschritt: T (2 k+1 1) = T (2 k 1) + 1 Induktionsannahme = k + 1. Binärsuche muss höchstens k Zahlen inspizieren gegenüber 2 k 1 Zahlen für die lineare Suche: Lineare Suche ist exponentiell langsamer als Binärsuche. Martin Hoefer Datenstrukturen Kapitel Mai / 79

113 Unser Freund, der Logarithmus Martin Hoefer Datenstrukturen Kapitel Mai / 79

114 Rechnen mit Logarithmen Seien a > 1 und x > 0 reelle Zahlen. log a (x) ist der Logarithmus von x zur Basis a und stimmt mit z genau dann überein, wenn Martin Hoefer Datenstrukturen Kapitel Mai / 79

115 Rechnen mit Logarithmen Seien a > 1 und x > 0 reelle Zahlen. log a (x) ist der Logarithmus von x zur Basis a und stimmt mit z genau dann überein, wenn a z = x. Martin Hoefer Datenstrukturen Kapitel Mai / 79

116 Rechnen mit Logarithmen Seien a > 1 und x > 0 reelle Zahlen. log a (x) ist der Logarithmus von x zur Basis a und stimmt mit z genau dann überein, wenn a z = x. (a) a log a (x) = x. (b) log a (x y) = Martin Hoefer Datenstrukturen Kapitel Mai / 79

117 Rechnen mit Logarithmen Seien a > 1 und x > 0 reelle Zahlen. log a (x) ist der Logarithmus von x zur Basis a und stimmt mit z genau dann überein, wenn a z = x. (a) a log a (x) = x. (b) log a (x y) = log a x + log a y. (c) log a (x y ) = Martin Hoefer Datenstrukturen Kapitel Mai / 79

118 Rechnen mit Logarithmen Seien a > 1 und x > 0 reelle Zahlen. log a (x) ist der Logarithmus von x zur Basis a und stimmt mit z genau dann überein, wenn a z = x. (a) a log a (x) = x. (b) log a (x y) = log a x + log a y. (c) log a (x y ) = y log a (x). (d) log a x = (log a b) Martin Hoefer Datenstrukturen Kapitel Mai / 79

119 Rechnen mit Logarithmen Seien a > 1 und x > 0 reelle Zahlen. log a (x) ist der Logarithmus von x zur Basis a und stimmt mit z genau dann überein, wenn a z = x. (a) a log a (x) = x. (b) log a (x y) = log a x + log a y. (c) log a (x y ) = y log a (x). (d) log a x = (log a b) (log b x). Wir übersetzen von Basis a in Basis b. Was ist 4 log 2 n? log 2 n = Martin Hoefer Datenstrukturen Kapitel Mai / 79

120 Rechnen mit Logarithmen Seien a > 1 und x > 0 reelle Zahlen. log a (x) ist der Logarithmus von x zur Basis a und stimmt mit z genau dann überein, wenn a z = x. (a) a log a (x) = x. (b) log a (x y) = log a x + log a y. (c) log a (x y ) = y log a (x). (d) log a x = (log a b) (log b x). Wir übersetzen von Basis a in Basis b. Was ist 4 log 2 n? log 2 n = (log 2 4) (log 4 n) mit (d). Martin Hoefer Datenstrukturen Kapitel Mai / 79

121 Rechnen mit Logarithmen Seien a > 1 und x > 0 reelle Zahlen. log a (x) ist der Logarithmus von x zur Basis a und stimmt mit z genau dann überein, wenn a z = x. (a) a log a (x) = x. (b) log a (x y) = log a x + log a y. (c) log a (x y ) = y log a (x). (d) log a x = (log a b) (log b x). Wir übersetzen von Basis a in Basis b. Was ist 4 log 2 n? log 2 n = (log 2 4) (log 4 n) mit (d). 4 log 2 n = 4 (log 2 4) (log 4 n) Martin Hoefer Datenstrukturen Kapitel Mai / 79

122 Rechnen mit Logarithmen Seien a > 1 und x > 0 reelle Zahlen. log a (x) ist der Logarithmus von x zur Basis a und stimmt mit z genau dann überein, wenn a z = x. (a) a log a (x) = x. (b) log a (x y) = log a x + log a y. (c) log a (x y ) = y log a (x). (d) log a x = (log a b) (log b x). Wir übersetzen von Basis a in Basis b. Was ist 4 log 2 n? log 2 n = (log 2 4) (log 4 n) mit (d). 4 log 2 n = 4 (log 2 4) (log 4 n) = (4 log 4 n ) log 2 4 Martin Hoefer Datenstrukturen Kapitel Mai / 79

123 Rechnen mit Logarithmen Seien a > 1 und x > 0 reelle Zahlen. log a (x) ist der Logarithmus von x zur Basis a und stimmt mit z genau dann überein, wenn a z = x. (a) a log a (x) = x. (b) log a (x y) = log a x + log a y. (c) log a (x y ) = y log a (x). (d) log a x = (log a b) (log b x). Wir übersetzen von Basis a in Basis b. Was ist 4 log 2 n? log 2 n = (log 2 4) (log 4 n) mit (d). 4 log 2 n = 4 (log 2 4) (log 4 n) = (4 log 4 n ) log 2 4 = n 2 mit (a). Martin Hoefer Datenstrukturen Kapitel Mai / 79

124 Rechnen mit Logarithmen Seien a > 1 und x > 0 reelle Zahlen. log a (x) ist der Logarithmus von x zur Basis a und stimmt mit z genau dann überein, wenn a z = x. (a) a log a (x) = x. (b) log a (x y) = log a x + log a y. (c) log a (x y ) = y log a (x). (d) log a x = (log a b) (log b x). Wir übersetzen von Basis a in Basis b. Was ist 4 log 2 n? log 2 n = (log 2 4) (log 4 n) mit (d). 4 log 2 n = 4 (log 2 4) (log 4 n) = (4 log 4 n ) log 2 4 = n 2 mit (a). Was ist b log a x? Martin Hoefer Datenstrukturen Kapitel Mai / 79

125 Rechnen mit Logarithmen Seien a > 1 und x > 0 reelle Zahlen. log a (x) ist der Logarithmus von x zur Basis a und stimmt mit z genau dann überein, wenn a z = x. (a) a log a (x) = x. (b) log a (x y) = log a x + log a y. (c) log a (x y ) = y log a (x). (d) log a x = (log a b) (log b x). Wir übersetzen von Basis a in Basis b. Was ist 4 log 2 n? log 2 n = (log 2 4) (log 4 n) mit (d). 4 log 2 n = 4 (log 2 4) (log 4 n) = (4 log 4 n ) log 2 4 = n 2 mit (a). Was ist b log a x? log a x = (log a b) (log b x) mit (d). Martin Hoefer Datenstrukturen Kapitel Mai / 79

126 Rechnen mit Logarithmen Seien a > 1 und x > 0 reelle Zahlen. log a (x) ist der Logarithmus von x zur Basis a und stimmt mit z genau dann überein, wenn a z = x. (a) a log a (x) = x. (b) log a (x y) = log a x + log a y. (c) log a (x y ) = y log a (x). (d) log a x = (log a b) (log b x). Wir übersetzen von Basis a in Basis b. Was ist 4 log 2 n? log 2 n = (log 2 4) (log 4 n) mit (d). 4 log 2 n = 4 (log 2 4) (log 4 n) = (4 log 4 n ) log 2 4 = n 2 mit (a). Was ist b log a x? log a x = (log a b) (log b x) mit (d). b log a x = b (log a b) (log b x) Martin Hoefer Datenstrukturen Kapitel Mai / 79

127 Rechnen mit Logarithmen Seien a > 1 und x > 0 reelle Zahlen. log a (x) ist der Logarithmus von x zur Basis a und stimmt mit z genau dann überein, wenn a z = x. (a) a log a (x) = x. (b) log a (x y) = log a x + log a y. (c) log a (x y ) = y log a (x). (d) log a x = (log a b) (log b x). Wir übersetzen von Basis a in Basis b. Was ist 4 log 2 n? log 2 n = (log 2 4) (log 4 n) mit (d). 4 log 2 n = 4 (log 2 4) (log 4 n) = (4 log 4 n ) log 2 4 = n 2 mit (a). Was ist b log a x? log a x = (log a b) (log b x) mit (d). b log a x = b (log a b) (log b x) = (b log b x ) log a b Martin Hoefer Datenstrukturen Kapitel Mai / 79

Datenstrukturen 1. Sommersemester Basierend auf Folien von Prof. Georg Schnitger, Prof. Ulrich Meyer, Dr. Iganz Rutter 1 / 73

Datenstrukturen 1. Sommersemester Basierend auf Folien von Prof. Georg Schnitger, Prof. Ulrich Meyer, Dr. Iganz Rutter 1 / 73 Datenstrukturen 1 Sommersemester 2017 1 Basierend auf Folien von Prof. Georg Schnitger, Prof. Ulrich Meyer, Dr. Iganz Rutter 1 / 73 Datenstrukturen 1 Sommersemester 2017 Herzlich willkommen! 1 Basierend

Mehr

Datenstrukturen. Mariano Zelke. Sommersemester 2012

Datenstrukturen. Mariano Zelke. Sommersemester 2012 Datenstrukturen Mariano Zelke Sommersemester 2012 Datenstrukturen Mariano Zelke Datenstrukturen 2/21 Herausforderungen für Google: Systematisches Durchsuchen von Milliarden von Websites Pflegen eines invertierten

Mehr

Datenstrukturen 1. Herzlich willkommen!

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

Mehr

Datenstrukturen. Sommersemester Herzlich willkommen!!!!!

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

Mehr

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

Ü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

Vorsemesterkurs Informatik. Sommersemester 2013

Vorsemesterkurs Informatik. Sommersemester 2013 Vorsemesterkurs Informatik Sommersemester 2013 Stand der Folien: 3. April 2013 Personen Organisation: Ronja Düffel (Ingo Wegener-Lernzentrum) Vorlesung: Teil 1: Conrad Rau und Dr. David Sabel (Lehrstuhl

Mehr

Induktion und Rekursion

Induktion und Rekursion Induktion und Rekursion Induktion und Rekursion Vorkurs Informatik Theoretischer Teil WS 013/14. Oktober 013 Vorkurs Informatik WS 013/14 1/1 Vollständige Induktion Vorkurs Informatik WS 013/14 /1 Ziel

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

Ü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

Übung Algorithmen und Datenstrukturen

Übung Algorithmen und Datenstrukturen Übung Algorithmen und Datenstrukturen Sommersemester 2017 Marc Bux, Humboldt-Universität zu Berlin Agenda 1. (Sortierte) Listen 2. Stacks & Queues 3. Datenstrukturen 4. Rekursion und vollständige Induktion

Mehr

Herzlich willkommen!!!

Herzlich willkommen!!! Theoretische Informatik 2 Sommersemester 2013 Prof. Dr. Georg Schnitger AG Theoretische Informatik Johann Wolfgang Goethe-Universität Frankfurt am Main Herzlich willkommen!!! 1 / 19 Kapitel 1: Einführung

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

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

5.5 Prioritätswarteschlangen

5.5 Prioritätswarteschlangen 5.5 Prioritätswarteschlangen LIFO- und FIFO-Warteschlangen entfernen Werte aus der Warteschlange in Abhängigkeit davon, wann sie in diese eingefügt wurden Prioritätswartschlangen interpretieren die Werte

Mehr

Informatik II, SS 2014

Informatik II, SS 2014 Informatik II SS 2014 (Algorithmen & Datenstrukturen) Vorlesung 1 (29.4.2014) Organisation, Übungen, Sortieren I Algorithmen und Komplexität Allgemeines Thema der Vorlesung Letztes Semester haben Sie (die

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

Informatik 1 (WS 2018/2019)

Informatik 1 (WS 2018/2019) Informatik 1 (WS 2018/2019) Klaus Berberich (klaus.berberich@htwsaar.de) Wolfgang Braun (wolfgang.braun@htwsaar.de) 0. Organisatorisches Dozenten Klaus Berberich (klaus.berberich@htwsaar.de) Sprechstunde

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

Abschnitt 7: Komplexität von imperativen Programmen

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

Mehr

Algorithmen & Komplexität

Algorithmen & Komplexität Algorithmen & Komplexität Angelika Steger Institut für Theoretische Informatik Was ist ein Algorithmus? Ein Algorithmus ist eine eindeutige Handlungsvorschrift, [bestehend] aus endlich vielen, wohldefinierten

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen 1 Lehrstuhl für Informatik I Algorithmen und Datenstrukturen Wintersemester 2015/16 Organisatorisches Vorlesung: Übungsbetreuung: Übungen: Alexander Wolff (E29) Krzysztof Fleszar (E16) Anna Aumann Johannes

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

... sind (wohldefinierte, endliche) Folgen von Anweisungen, die aus einer Eingabe eine Ausgabe produzieren. Algorithmus.

... sind (wohldefinierte, endliche) Folgen von Anweisungen, die aus einer Eingabe eine Ausgabe produzieren. Algorithmus. 3-4 Algorithmen...... sind (wohldefinierte, endliche) Folgen von Anweisungen, die aus einer Eingabe eine Ausgabe produzieren. Algorithmus Eingabe Ausgabe Beispiele: Kochrezepte Algorithmen zur Verknüpfung

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen B4. Priority Queues und Heaps Marcel Lüthi and Gabriele Röger Universität Basel 28. März 2018 Einführung Kollektion von Elementen Grundlegende Operationen sind Einfügen

Mehr

5. Übungsblatt zu Algorithmen I im SoSe 2016

5. Übungsblatt zu Algorithmen I im SoSe 2016 Karlsruher Institut für Technologie Institut für Theoretische Informatik Prof. Dr. Dennis Hofheinz Lukas Barth, Lisa Kohl 5. Übungsblatt zu Algorithmen I im SoSe 2016 https://crypto.iti.kit.edu/index.php?id=algo-sose16

Mehr

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

Übung Algorithmen und Datenstrukturen

Übung Algorithmen und Datenstrukturen Übung Algorithmen und Datenstrukturen Sommersemester 2017 Marc Bux, Humboldt-Universität zu Berlin Agenda 1. Die Landau-Notation (Wiederholung und Vertiefung) 2. Vorbereitung Aufgabenblatt 1, Aufgabe 1

Mehr

Algorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2012 / Vorlesung 2, Donnerstag 31.

Algorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2012 / Vorlesung 2, Donnerstag 31. Algorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2012 / 2013 Vorlesung 2, Donnerstag 31. Oktober 2013 (Laufzeitanalyse MinSort / HeapSort, Induktion) Junior-Prof.

Mehr

Informatik II: Algorithmen und Datenstrukturen SS 2013

Informatik II: Algorithmen und Datenstrukturen SS 2013 Informatik II: Algorithmen und Datenstrukturen SS 2013 Vorlesung 1a, Dienstag, 16. April 2013 (Organisatorisches, Programmierumgebung, Sortieren) Prof. Dr. Hannah Bast Lehrstuhl für 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

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

A1.1 Organisatorisches

A1.1 Organisatorisches Algorithmen und Datenstrukturen 28. Februar 2018 A1. Organisatorisches Algorithmen und Datenstrukturen A1. Organisatorisches A1.1 Organisatorisches Marcel Lüthi and Gabriele Röger Universität Basel A1.2

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

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

Skript zur Vorlesung Datenstrukturen. Prof. Dr. Georg Schnitger

Skript zur Vorlesung Datenstrukturen. Prof. Dr. Georg Schnitger Skript zur Vorlesung Datenstrukturen Prof. Dr. Georg Schnitger SS 2015 Hinweise auf Fehler und Anregungen zum Skript bitte an besser@thi.informatik.uni-frankfurt.de oder seiwert@thi.informatik.uni-frankfurt.de

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Lehrstuhl für Informatik I Algorithmen und Datenstrukturen Wintersemester 2016/17 Organisatorisches Vorlesung: Übungsbetreuung: Übungen: Alexander Wolff (E29) Fabian Lipp (E14) André Löffler (E15) Johannes

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

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

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

Herzlich willkommen!!!

Herzlich willkommen!!! Theoretische Informatik 2 Sommersemester 2015 Prof. Dr. Georg Schnitger AG Theoretische Informatik Goethe-Universität Frankfurt am Main Herzlich willkommen!!! 1 / 19 Kapitel 1: Einführung Einführung 2

Mehr

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

Algorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2014 / Vorlesung 2, Donnerstag 30. Algorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2014 / 2015 Vorlesung 2, Donnerstag 30. Oktober 2014 (Laufzeitanalyse MinSort / HeapSort, Induktion) Junior-Prof.

Mehr

Algorithmische Spieltheorie

Algorithmische Spieltheorie Algorithmische Spieltheorie Martin Hoefer Sommer 2017 1 / 8 Worum gehts? Dynamische Systeme mit rationalen Nutzern und Interaktion, z.b. Rationales Verhalten, Anreize und Stabilität bei Ressourcennutzung

Mehr

Induktive Beweise und rekursive Definitionen

Induktive Beweise und rekursive Definitionen Induktive Beweise und rekursive Definitionen Vorlesung Logik in der Informatik, HU Berlin 1. Übungsstunde Beweis durch vollständige Induktion über N Aufgabe 1 Zeige, dass für alle n N gilt: n 2 i = 2 n+1

Mehr

Übungen zu Algorithmentechnik WS 09/10

Übungen zu Algorithmentechnik WS 09/10 Übungen zu Algorithmentechnik WS 09/10 1. Kurzsitzung Thomas Pajor 22. Oktober 2009 1/ 25 Eure Übungsleiter Tanja Hartmann t.hartmann@kit.edu Raum 306, Gebäude 50.34 Thomas Pajor pajor@kit.edu Raum 322,

Mehr

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

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

Mehr

Algorithmen I - Tutorium 28 Nr. 1

Algorithmen I - Tutorium 28 Nr. 1 Algorithmen I - Tutorium 28 Nr. 1 04.05.2017: Spaß mit O-Kalkül, Schleifeninvarianten, Laufzeit Marc Leinweber marc.leinweber@student.kit.edu INSTITUT FÜR THEORETISCHE INFORMATIK (ITI), PROF. DR. JÖRN

Mehr

Übung Algorithmen und Datenstrukturen

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

Mehr

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

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

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

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Rheinisch-Westfälische Technische Hochschule Aachen Lehrstuhl für Informatik VI Algorithmen und Datenstrukturen Vorlesungsmitschrift zur Vorlesung im SS 2004 Prof. Dr.-Ing. H. Ney Letzte Überarbeitung:

Mehr

Viel Spaÿ! Aufgabe 0.1. Laufzeit unter Verdoppelung (-)

Viel Spaÿ! Aufgabe 0.1. Laufzeit unter Verdoppelung (-) Datenstrukturen (DS) Sommersemester 2015 Prof. Dr. Georg Schnitger Dipl-Inf. Bert Besser Hannes Seiwert, M.Sc. Institut für Informatik AG Theoretische Informatik Übung 0 Ausgabe: 14.04.2015 Abgabe: - Wenn

Mehr

Einführung in die Programmierung

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

Mehr

Elementare Beweismethoden

Elementare Beweismethoden Elementare Beweismethoden Christian Hensel 404015 Inhaltsverzeichnis Vortrag zum Thema Elementare Beweismethoden im Rahmen des Proseminars Mathematisches Problemlösen 1 Einführung und wichtige Begriffe

Mehr

Verteilte Algorithmen und Datenstrukturen. Prof. Dr. Christian Scheideler Institut für Informatik Universität Paderborn

Verteilte Algorithmen und Datenstrukturen. Prof. Dr. Christian Scheideler Institut für Informatik Universität Paderborn Verteilte Algorithmen und Datenstrukturen Prof. Dr. Christian Scheideler Institut für Informatik Universität Paderborn Verteilte Algorithmen und Datenstrukturen Vorlesung: Mi 14:15-15:45 Uhr, F0.530 Übung:

Mehr

Datenstrukturen: Mathematische Grundlagen. 26. Juli / 27

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

Mehr

Übung zur Vorlesung Diskrete Strukturen I

Übung zur Vorlesung Diskrete Strukturen I Technische Universität München WS 00/0 Institut für Informatik Aufgabenblatt 10 Prof. Dr. J. Csirik 7. Januar 00 randt & Stein Übung zur Vorlesung Diskrete Strukturen I Abgabetermin: Tutorübungen am 16.

Mehr

Personen. Grundlagen der Programmierung 2. Webseite und . Vorlesung

Personen. Grundlagen der Programmierung 2. Webseite und  . Vorlesung Personen Grundlagen der Programmierung 2 Oganisatorisches Prof. Dr. Manfred Schmidt-Schauß (Künstliche Intelligenz und Softwaretechnologie) Dr. Karsten Tolle (Datenbanken und Informationssysteme) Teil

Mehr

Informatik II Algorithmen & Datenstrukturen

Informatik II Algorithmen & Datenstrukturen lausthal Informatik II Algorithmen & Datenstrukturen Organisatorisches. Zachmann lausthal University, ermany zach@in.tu-clausthal.de Ziel der Vorlesung 1. Eine (kleine) Anzahl von sehr grundlegenden Algorithmen

Mehr

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

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

Mehr

Induktive Beweise und rekursive Definitionen

Induktive Beweise und rekursive Definitionen Induktive Beweise und rekursive Definitionen Vorlesung Logik in der Informatik, HU Berlin 1. Übungsstunde Beweis durch vollständige Induktion über N Aufgabe 1 Zeige, dass für alle n N gilt: n 2 i = 2 n+1

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

Datenstrukturen und Algorithmen

Datenstrukturen und Algorithmen Joost-Pieter Katoen Datenstrukturen und Algorithmen 1/54 Datenstrukturen und Algorithmen Vorlesung 1: Algorithmische Komplexität Joost-Pieter Katoen Lehrstuhl für Informatik 2 Software Modeling and Verification

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

Suchen und Sortieren

Suchen und Sortieren Ideen und Konzepte der Informatik Suchen und Sortieren [Ordnung muss sein ] Kurt Mehlhorn (viele Folien von Kostas Panagiotou) Suchen Welche Telefonnummer hat Kurt Mehlhorn? Wie schreibt man das Wort Equivalenz?

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

Datenstrukturen. Mariano Zelke. Sommersemester 2012

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

Mehr

Mathematische Grundlagen

Mathematische Grundlagen Mathematische Grundlagen für Wirtschaftsinformatiker Prof. Dr. Peter Becker Fachbereich Informatik Hochschule Bonn-Rhein-Sieg Wintersemester 2016/17 Peter Becker (H-BRS) Mathematische Grundlagen Wintersemester

Mehr

Asymptotik und Laufzeitanalyse

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

Mehr

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 I - Tutorium 28 Nr. 3

Algorithmen I - Tutorium 28 Nr. 3 Algorithmen I - Tutorium 28 Nr. 3 18.05.2016: Spaß mit Listen, Arrays und amortisierter Analyse Marc Leinweber marc.leinweber@student.kit.edu INSTITUT FÜR THEORETISCHE INFORMATIK (ITI), PROF. DR. JÖRN

Mehr

Grundlagen: Algorithmen und Datenstrukturen

Grundlagen: Algorithmen und Datenstrukturen Technische Universität München Fakultät für Informatik Lehrstuhl für Effiziente Algorithmen Dr. Hanjo Täubig Tobias Lieber Sommersemester 2011 Übungsblatt 5 14. Juni 2011 Grundlagen: Algorithmen und Datenstrukturen

Mehr

9. Rekursion. 1 falls n 1 n (n 1)!, andernfalls. Experiment: Die Türme von Hanoi. Links Mitte Rechts. Mathematische Rekursion

9. Rekursion. 1 falls n 1 n (n 1)!, andernfalls. Experiment: Die Türme von Hanoi. Links Mitte Rechts. Mathematische Rekursion Experiment: Die Türme von Hanoi. Rekursion Mathematische Rekursion, Terminierung, der Aufrufstapel, Beispiele, Rekursion vs. Iteration Links Mitte Rechts Mathematische Rekursion Viele mathematische Funktionen

Mehr

Grundlagen der Programmierung 2

Grundlagen der Programmierung 2 Grundlagen der Programmierung 2 Oganisatorisches Prof. Dr. Manfred Schmidt-Schauß (Künstliche Intelligenz und Softwaretechnologie) Dr. Karsten Tolle (Datenbanken und Informationssysteme) Sommersemester

Mehr

Grundlagen der Programmierung 2

Grundlagen der Programmierung 2 Grundlagen der Programmierung 2 Oganisatorisches Prof. Dr. Manfred Schmidt-Schauß (Künstliche Intelligenz und Softwaretechnologie) Dr. Karsten Tolle (Datenbanken und Informationssysteme) Sommersemester

Mehr

Suchen und Sortieren

Suchen und Sortieren Ideen und Konzepte der Informatik Suchen und Sortieren Ordnung ist das halbe Leben Antonios Antoniadis (Basierend auf Folien von Kurt Mehlhorn und Konstantinos Panagiotou) 6. November 2017 6. November

Mehr

Algorithmen und Komplexität Lösungsvorschlag zu Übungsblatt 8

Algorithmen und Komplexität Lösungsvorschlag zu Übungsblatt 8 ETH Zürich Institut für Theoretische Informatik Prof. Dr. Angelika Steger Florian Meier, Ralph Keusch HS 2017 Algorithmen und Komplexität Lösungsvorschlag zu Übungsblatt 8 Lösungsvorschlag zu Aufgabe 1

Mehr

Induktion und Rekursion

Induktion und Rekursion Induktion und Rekursion Induktion und Rekursion Sommersemester 2018 Ronja Düffel 16. März 2018 Induktion und Rekursion > Mathematische Beweistechniken > Vollständige Induktion Der kleine Gauß Induktion

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

Grundlagen: Algorithmen und Datenstrukturen

Grundlagen: Algorithmen und Datenstrukturen Technische Universität München Fakultät für Informatik Lehrstuhl für Effiziente Algorithmen Dr. Hanjo Täubig Tobias Lieber Sommersemester 2011 Übungsblatt 1 16. September 2011 Grundlagen: Algorithmen und

Mehr

Algorithmen und Datenstrukturen (für ET/IT)

Algorithmen und Datenstrukturen (für ET/IT) Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 2018 Dr. Stefanie Demirci Computer Aided Medical Procedures Technische Universität München Organisatorisches: Keine Vorlesung nächste Woche wegen

Mehr

Einführung in die Numerische Lineare Algebra (MA 1304)

Einführung in die Numerische Lineare Algebra (MA 1304) Einführung in die Numerische Lineare Algebra (MA 1304) Vorlesung Montags, 16:15-17:45 Uhr Rudolf-Mößbauer - HS (Physik) Homepage zur Vorlesung http://www-m2.ma.tum.de/bin/view/allgemeines/numlinalgws1516

Mehr

Hardwarearchitekturen und Rechensysteme

Hardwarearchitekturen und Rechensysteme Lehrstuhl für Eingebettete Systeme Hardwarearchitekturen und Rechensysteme Sommersemester 2009 Folien zur Vorlesung Hardwarearchitekturen und Rechensysteme von Prof. Dr. rer. nat. U. Brinkschulte Prof.

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

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

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

Logik und diskrete Strukturen

Logik und diskrete Strukturen Prof. Dr. Institut für Informatik Abteilung V Wintersemester 2015/16 Dozenten und Tutoren Vorlesung Professor für Theoretische Informatik E-Mail: roeglin@cs.uni-bonn.de Web: http://www.roeglin.org/ Büro:

Mehr

Übersicht Datenstrukturen und Algorithmen. Literatur. Algorithmus: Wikipedia Definition. Vorlesung 1: Einführung. Prof. Dr.

Übersicht Datenstrukturen und Algorithmen. Literatur. Algorithmus: Wikipedia Definition. Vorlesung 1: Einführung. Prof. Dr. Übersicht Datenstrukturen und Vorlesung 1: Prof. Dr. Erika Ábrahám Theorie Hybrider Systeme Informatik 2 http://ths.rwth-aachen.de/teaching/ss-14/ datenstrukturen-und-algorithmen/ Diese Präsentation verwendet

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen 1 Algorithmen und Datenstrukturen Wintersemester 2015/16 2. Vorlesung Sortieren mit anderen Mitteln Prof. Dr. Alexander Wolff Lehrstuhl für Informatik I 2-11 Teile und herrsche Idee: teile den Kartenstapel

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

Das Suchproblem 4. Suchen Das Auswahlproblem Suche in Array

Das Suchproblem 4. Suchen Das Auswahlproblem Suche in Array Das Suchproblem Gegeben. Suchen Lineare Suche, Binäre Suche, Interpolationssuche, Untere Schranken [Ottman/Widmayer, Kap. 3.2, Cormen et al, Kap. 2: Problems 2.-3,2.2-3,2.3-] Menge von Datensätzen. Beispiele

Mehr

Algorithmen und Datenstrukturen

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

Mehr

Einführung in die Programmierung

Einführung in die Programmierung Einführung in die Programmierung Prof. Dr. Peer Kröger, Janina Bleicher, Florian Richter Ludwig-Maximilians-Universität München, Institut für Informatik, LFE Datenbanksysteme Wintersemester 2016/2017 Peer

Mehr

Suchen und Sortieren

Suchen und Sortieren Ideen und Konzepte der Informatik [Ordnung ist das halbe Leben] Kurt Mehlhorn (viele Folien von Kostas Panagiotou) Suchen Welche Telefonnummer hat Kurt Mehlhorn? Wie schreibt man das Wort Gerechtigkeit?

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen 1 Lehrstuhl für Informatik I Algorithmen und Datenstrukturen Wintersemester 2015/16 Organisatorisches Vorlesung: Übungsbetreuung: Übungen: Alexander Wolff (E29) Krzysztof Fleszar (E16) Anna Aumann Johannes

Mehr