Algorithmen und Datenstrukturen

Größe: px
Ab Seite anzeigen:

Download "Algorithmen und Datenstrukturen"

Transkript

1 Algorithmen und Datenstrukturen Prof. Dr. Sibylle Schwarz Westsächsische Hochschule Zwickau Dr. Friedrichs-Ring 2a, RII SS

2 Algorithmen Beispiel ggt (einfacher) Euklidischer Algorithmus zur Bestimmung des ggt zweier natürlicher Zahlen Algorithmus : Größter gemeinsamer Teiler Eingabe : a N, b N Ausgabe : ggt(a, b) solange a b : wenn a > b dann a a b sonst b b a Rückgabe a 2

3 Algorithmus endlich beschriebene schrittweise ausgeführte Arbeitsvorschrift zur Lösung eines Berechnungsproblemes, d.h. zur Transformation einer Eingabe in eine Ausgabe 3

4 Beispiele für Algorithmen historisch (Mathematik): Euklidischer Algorithmus Sieb des Erathostenes schriftliche Addition, Multiplikation usw. Gauß-Algorithmus im Alltag: Suchen eines Wörterbucheintrages Bauanleitung Kochrezept Orchester-Partitur in der Informatik: Programm-Quelltext Programm-Ablaufplan, Struktogramm Suchverfahren Sortierverfahren 4

5 Algorithmen und Datenstrukturen Informatik Wissenschaft von der Darstellung und Verarbeitung symbolischer Information Darstellung der Information als (strukturierte) Daten Verarbeitung der Information durch Algorithmen 5

6 Abstraktionsstufen Abstrakter DT Mathematik: Funktion (konkreter) DT algebraische Struktur Algorithmus Datenstruktur Implementierung: Funktion, Methode Typ, Klasse 6

7 Einordnung in die Informatik Teilgebiete der Informatik: theoretisch technisch Formalismen zur Darstellung von Daten und Algorithmen Möglichkeiten und Grenzen der Berechenbarkeit durch Algorithmen Grundlagen für technische und praktische (und angewandte) Informatik maschinelle Darstellung von Information Mittel zur Ausführung von Algorithmen praktisch Modellierung (Datenstrukturen) Entwurf von Algorithmen Programmierung, Softwaretechnik angewandt Modellierung durch geeignete Datenstrukturen Anwendung von Algorithmen (z.b. Suchen, Sortieren,... ) 7

8 Inhalt der Lehrveranstaltung Algorithmen Spezifikation Laufzeitabschätzungen rekursive Algorithmen Beispiele, z.b. Sortieralgorithmen abstrakte Datentypen mit häufigen Operationen: Mengen Folgen Zuordnungen (Wörterbücher) Relationen Datenstrukturen zu deren Realisierung: lineare Datenstrukturen (Listen, Stack, Queue, Hash-Tabellen) hierarchische Datenstrukturen (Bäume, Heaps) Graphen Algorithmen auf Graphen Pattern-Matching-Algorithmen 8

9 Literatur Cormen, Leiserson, Rivest, Stein: Algorithmen - Eine Einführung (Oldenbourg, 2007) Güting, Dieker: Datenstrukturen und Algorithmen (Teubner, 2004) Solymosi, Grude: Grundkurs Algorithmen und Datenstrukturen : eine Einführung in die praktische Informatik mit Java (Vieweg, 2000) Preiss: Data Structures and Algorithms with Object-Oriented Design Patterns in Java (Online-Version unter 9

10 Organisation Montag 11:20-12:50 in R304 Vorlesung Donnerstag Z1 15:05-16:35 in R308 Hausaufgaben schriftliche Aufgaben (Prüfungsvorbereitung) Vorbereitung des Praktikums (Entwurf) Autotool-Aufgaben Übung für alle gemeinsam (Hörsaalübung) Donnerstag Z1 9:35-11:05 in PBS 203 Fragen zum Vorlesungsstoff Besprechung der schriftlichen Übungsaufgaben Praktika 2 Gruppen (Eintragen im Autotool): Montag 9:35-11:05 in Pool 242 (14-tägig) (einige) Autotool-Aufgaben Programmieraufgaben (Implementierung) Prüfung: Klausur ca. 60 min (Hälfte von 120 min für Modul PTI621) 10

11 Algorithmen in der Informatik Algorithmus: in Schritte geordnete Arbeitsvorschrift endliche Beschreibung eines schrittweise ausgeführten Verfahrens in einer formalen Beschreibungssprache. zur Ausführung eines Algorithmus ist nötig: Akteur / Maschine, welche den Beschreibungsformalismus interpretieren kann 11

12 Algorithmen Eigenschaften notwendige Eigenschaften: endliche Beschreibung schrittweise Ausführung oft wird außerdem gefordert (meist sinnvoll für auf Computer ausgeführten Algorithmen): deterministischer Ablauf : bei wiederholter Ausführung mit denselben Eingaben wird immer derselbe Ablauf ausgeführt terminierend (Endlichkeit der Ausführung): Berechnungsvorschrift terminiert gdw. jede Ausführung bei jeder erlaubten Eingabe nach endlich vielen Schritten endet determiniertes Ergebnis : bei wiederholter Ausführung mit denselben Eingaben wird immer dieselbe Ausgabe erzeugt allgemeingültig : löst eine ganze Klasse von Aufgaben 12

13 Beispiele Algorithmus : A1 Eingabe : y Z Ausgabe : y x Wähle beliebige Zahl x Z y x + 4 Algorithmus : A2 Eingabe : x Z Ausgabe : y y 1 solange x 0 : y yx x x 1 Algorithmus : A3 Eingabe : n N Ausgabe : n solange n > 1 : wenn n 2 0 dann n n/2 sonst n 3n + 1 Welche dieser Algorithmen sind deterministisch, terminierend, haben determiniertes Ergebnis? 13

14 Algorithmen zur Lösung eines Berechnungsproblemes Berechnungsproblem: Transformation von Eingaben in Ausgaben Anforderungen an Algorithmen zur Lösung eines speziellen Berechnungsproblemes: Korrektheit Algorithmus löst alle Instanzen des gegebenen Problems (fehlerfrei): bestimmt für jede Eingabe korrekte Ausgabe. Berechenbarkeit Zu jeder Eingabe ist eine eindeutige Ausgabe definiert und wird vom Algorithmus erzeugt. Nicht alle formulierbaren Algorithmen sind berechenbar. (hängt vom Problem und der Beschreibungssprache ab). mehr dazu in LV Theoretische Informatik Effizienz möglicht geringer Ressourcen-Verbrauch (Speicherplatz, Laufzeit) 14

15 Algorithmen-Entwicklung 1. informale Aufgabenstellung 2. formale Spezifikation: Was (welches Berechnungsproblem) soll gelöst werden? exakte (formale) Beschreibung des Problemes: Eingabe des Algorithmus Ausgabe des Algorithmus Zusammenhang zwischen Ein- und Ausgabe 3. Entwurf des Algorithmus: Wie soll es gelöst werden? formale Darstellung der Arbeitsschritte zu jedem Schritt: Was wird getan? (Aktionen, Anweisungen) Womit wird es getan? (Daten) Wie geht es weiter? (nächster Schritt) 4. Verifikation: Nachweis der Korrektheit des Algorithmenentwurfes 5. Realisierung (Implementierung) 15

16 Algorithmen Spezifikation Problemanalyse: Was soll gelöst werden? Ausgangspunkt: Ergebnis: umgangssprachlich formulierte und oft ungenaue Aufgabenbeschreibung exakte und vollständige Definition des Problemes Spezifikation eines Berechnungsproblemes: korrekte formale Beschreibung des Zusammenhanges zwischen Eingaben und Ausgaben Spezifikation eines Berechnungsproblemes enthält Vorbedingung: Forderung an die Eingaben Nachbedingung: Forderung an die Ausgaben Instanz eines Berechnungsproblemes: spezielle Eingabe 16

17 Beispiel: Spezifikation des Sortier-Problems informale Aufgabenstellung: Entwurf eines Verfahrens, welches jede Folge (x 1,..., x n ) natürlicher Zahlen sortiert formale Spezifikation dieses Sortier-Problemes: Vorbedingung: Eingabe (x 1, x 2,..., x n ) mit i {1,..., n} : x i N Nachbedingung: Ausgabe (y 1, y 2,..., y n ) ist 1. y 1 y 2 y n+1 (aufsteigend geordnet) und 2. eine Permutation (Umordnung) der Eingabe (x 1, x 2,..., x n ) Instanz dieses Sortier-Problemes: (34, 6, 72, 3, 4, 15) 17

18 Algorithmen Korrektheit... there are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies and the other way is to make it so complicated that there are no obvious deficiencies. The first method is far more difficult. Tony Hoare, 1980 ACM Turing Award Lecture Ist der entworfene Algorithmus korrekt? Erfüllt der entworfene Algorithmus die Spezifikation? Verifikation: Nachweis, dass Entwurf die Spezifikation erfüllt sicherer (aber mitunter aufwendiger) als Testen Es gibt Verfahren / Systeme, die Verifikation automatisch ausführen oder unterstützen. mehr dazu im Master-Studium: LV Spezifikations- und Verifikationsmethoden 18

19 Effizienz von Algorithmen Aufwandsanalyse von Algorithmen abhängig von der Größe der Instanz unabhängig von konkreter Hardware im günstigsten Fall (best case) ungünstigsten Fall (worst case) Mittel (average case) Abschätzungen von Resourcenbedarf bei Ausführung des Algorithmus Zeitaufwand: Anzahl elementarer Rechenschritte auf einem idealisierten Rechnermodell (RAM) Speicherplatzbedarf 19

20 Algorithmenentwurf Algorithmus = in Schritte geordnete Arbeitsvorschrift endliche Beschreibung eines schrittweise von einem Aktuer ausgeführten Verfahrens in einer formalen Beschreibungssprache. Ziele beim Entwurf von Algorithmen: Korrektheit geringer Ressourcenverbrauch Laufzeit Speicherplatz sinnvoll strukturierte einfache formale Beschreibung (z.b. kurzer, lesbarer Programmcode) 20

21 Beispiel Summe der ersten n natürlichen Zahlen informale Aufgabenstellung: Addiere alle natürlichen Zahlen von 1 bis n. Spezifikation: Vorbedingung: Eingabe n N Nachbedingung: Ausgabe s = n i=1 i Algorithmus : A1 Eingabe : n N Ausgabe : s s 0 für jedes i 1,..., n : s s + i Algorithmus : A2 Eingabe : n N Ausgabe : s s n(n + 1)/2 21

22 (Idealisiertes) Rechnermodell Random-Access-Maschine (RAM) unendlich viele Speicherzellen für je eine natürliche Zahl (Alternative: Real-RAM für reelle Zahlen) Befehle: Laden Speichern Operationen (logisch, arithmetisch, Vergleiche) Unterprogrammaufrufe Ausführung jedes Befehles (elementare Anweisung, Schritt) dauert (kostet) genau eine Einheit sequentielle Ausführung aller Befehle 22

23 Laufzeitanalyse Laufzeit eines Algorithmus auf der Eingabe x: Anzahl der zur Ausführung des Algorithmus bei Eingabe x benötigten Einheiten (Schritte) Laufzeit T eines Algorithmus ist eine Funktion der Größe der Eingabe x Definition der Größe hängt vom Berechnungsproblem ab, z.b. Länge einer zu sortierenden Liste, Länge der Binärdarstellung zweier zu addierender Zahlen worst-case Maximum der Laufzeiten des Algorithmus über alle Eingaben obere Schranke für die Laufzeit best-case Minimum der Laufzeiten des Algorithmus über alle Eingaben untere Schranke für die Laufzeit average-case Durchschnitt der Laufzeiten des Algorithmus über alle Eingaben 23

24 Beispiel: Durchsuchen einer Folge Spezifikation des Suchproblemes: V: Eingaben x = (x 1,..., x n ), y N: Ausgabe: Algorithmus : Suche 1 Eingabe : (x 1,..., x n ), y Ausgabe : gefunden gefunden Nein i 1 solange i n : wenn x i = y dann gefunden Ja i i + 1 Laufzeit (Tafel) Ja, falls ein i {1,..., n} mit x i = y existiert, sonst Nein 24

25 Mathematische Grundlagen: Wachstumsklassen präzise Laufzeitfunktion meist nicht relevant, nur die Größenordnung des Wachstums Ziel: Abschätzung der Größenordnung der Wachstumsfunktion durch Vergleich mit einfachen Funktionen Abschätzungen des asymptotischen Wachstums gelten nur für hinreichend große Werte 25

26 Wachstumsklassen Funktionenklassen zu einer gegebenen Funktion g : N R 0 O(g) = {f : N R 0 n 0 N c > 0 n n 0 : f (n) cg(n)} f wächst höchstens so schnell wie g (asymptotische obere Wachstumsschranke) o(g) = {f : N R 0 n 0 N c > 0 n n 0 : f (n) < cg(n)} f wächst langsamer als g Ω(g) = {f : N R 0 n 0 N c > 0 n n 0 : 0 cg(n) f (n)} f wächst mindestens so schnell wie g (asymptotische untere Wachstumsschranke) ω(g) = {f : N R 0 n 0 N c > 0 n n 0 : 0 cg(n) < f (n)} f wächst schneller als g Θ(g) = O(g) Ω(g) (asymptotisch gleiches Wachstum) Gilt genau dann, wenn f O(g) und g O(f ) 26

27 Asymptotische obere Schranke O(g) = {f : N R 0 n 0 N c > 0 n n 0 : f (n) cg(n)} Beispiele: 3/2n 2 + 3/2n + 2 O(n 2 ) n O(n 3 ) 2 n O(n 3 ) geeignete Abschätzung für worst-case-analyse 27

28 Vereinfachungen in O-Notation O(cf ) = O(f ), konstante Faktoren irrelevant O(f + g) = max(o(f ), O(g)), Summanden mit kleinerem Wachstum irrelevant, z.b. Polynome kleineren Grades O(log a n) = O(log b n) 28

29 Berechnung durch Grenzwerte 1000n n n 3 + n 2 O(n 5 ) wegen 1000n n n 3 + n 2 lim n n n 5 = lim n n 5 = 1000 < Beispiele: O(n/2) = O(134n) = O(n ) = O(n 5000) = O(17n 5000) = O(n/5000) = O(n) O(log n) O(n) O(n 2 ) O(2 n ) 29

30 Beispiele n O(n) 1000n O(n) 1000n O(n 2 ) 1000n O( n) 1000n n 2 O(n 5 ) 1000n n 2 O(n 6 ) n/ O(n) log a n O(log b n) 30

31 Wichtige Funktionenklassen O(1) konstantes Wachstum O(n) lineares Wachstum O(n 2 ) quadratisches Wachstum O(n 3 ) kubisches Wachstum O(n k ) polynomielles Wachstum O(log n) logarithmisches Wachstum O(n log n) O(log log n) doppelt logarithmisches Wachstum O(2 n ) exponentielles Wachstum 31

32 Laufzeitabschätzungen für Ablaufstrukturen elementare Operationen A (Zuweisung, Berechnung eines arithmetischen Ausdruckes, Vergleich) T (A) = 1 O(1) sequentielle Verknüpfung (Nacheinanderausführung) Algorithmus A = A_1; A_2 Laufzeit T (A) = T (A 1 ) + T (A 2 ) Verzweigung (Alternative) Algorithmus A = if C then A_1 else A_2 Laufzeit T (A) = max(t (A 1 ), T (A 2 )) O(T (A 1 ) + T (A 2 )) Wiederholung (Schleife) Algorithmus A = for i = 1 to n A_i Laufzeit T (A) = T (A 1 ) + T (A 2 ) T (A n ) oft für jeden Durchlauf gleiche Laufzeit, dann T (A) = nt (A 1 ) 32

33 Beispiel: Suche 2 Spezifikation des Suchproblemes: V: Eingaben x = (x 1,..., x n ), y N: Ausgabe: Algorithmus : Suche 2 Eingabe : (x 1,..., x n ), y Ausgabe : gefunden Ja, falls ein i {1,..., n} mit x i = y existiert, sonst Nein gefunden Nein i 1 solange gefunden = Nein und i n : wenn x i = y dann gefunden Ja i i

34 Laufzeiten Suche 1 best falls y = x 1 : T (n) O(n) worst falls y nicht in x vorkommt: T (n) O(n) average T (n) O(n) Suche 2 best falls y = x 1 : T (n) O(1) worst falls y nicht in x vorkommt: T (n) O(n) average T (n) O(n) 34

35 Beispiel Minimum-Suche Spezifikation: Eingabe x = (x 1,..., x n ) Ausgabe y mit 1. y {x 1,..., x n } und 2. z {x 1,..., x n } : y z Algorithmus : Minimum-Suche Eingabe : (x 1,..., x n ) Ausgabe : y y x 1 für jedes i 2,..., n : wenn y > x i dann y x i Laufzeit: O(n) 35

36 Beispiele Laufzeiten Für alle Algorithmen: Algorithmus : A Eingabe : n Ausgabe : s Algorithmus : B k 52; s 5 für jedes i 1,..., n : für jedes j 1,..., k : s n + ij k 52; s 5 für jedes i 1,..., n : für jedes j 1,..., n : s n + ij Algorithmus : C k 52; s 5 für jedes i 1,..., n : für jedes j 1,..., i : s i + j T (A) 0(n) T (B) 0(n 2 ) T (C) 0(n 2 ) 36

37 Rekursive Algorithmen Basisfall (Induktionsanfang): direkte Lösung Rekursionsschritt (Induktionsschritt): Funktionswert wird aus den Funktionswerten derselben Funktion mit anderen (einfacheren) Argumenten berechnet Beispiele: Fakultät { 1 falls n = 0 n! = n(n 1)! sonst Fibonacci-Funktion 0 falls n = 0 f (n) = 1 falls n = 1 f (n 1) + f (n 2) sonst Ackermann-Funktion y + 1 falls x = 0 a(x, y) = a(x 1, 1) falls y = 0 und x > 0 a(x 1, a(x, y 1)) sonst 37

38 Laufzeit-Berechnung für n! Spezifikation: V: x N N: y = x! Algorithmus : fac Eingabe : x Ausgabe : y wenn x = 0 dann y 1 sonst y x fac(x 1) Rekurrenz T (0) = 1 T (n) = T (n 1) + 1 T (n) = T (n 1) + 1 = (T (n 2) + 1) + 1 = T (n 2) + 2 = T (n 3) = T (n n) + n = T (0) + n = 1 + n Laufzeit O(n) 38

39 Divide-and-Conquer-Verfahren (teile und herrsche) Idee: rekursive Zerlegung des Problemes in Teilprobleme bis zum Basisfall Grundprinzip: Teilung des Problems P in n Teilprobleme P i Lösung aller Teilprobleme P i (Rekursion) Kombination der Lösungen der Teilprobleme P i zu einer Lösung des Problems P (Baumstruktur) 39

40 Beispiel: Suche in geordneten Folgen Spezifikation des Suchproblemes in geordneten Folgen: V: Eingaben totale Ordnung (M, ), x = (x 1,..., x n ) M aufsteigend geordneten (d.h. x 1 x 2 x n ) y M N: Ausgabe: Ja, falls ein i {1,..., n} mit x i = y existiert, sonst Nein 40

41 Algorithmus: Suche in geordneten Folgen Algorithmus : Suche3 Eingabe : (x 1,..., x n ), y und l, r {1,..., n} (Bereichsgrenzen) Ausgabe : gefunden wenn l > r dann gefunden Nein sonst m (l + r)/2 wenn x m = y dann gefunden Ja sonst wenn x m < y dann Suche3(x, y, m + 1, r) sonst Suche3(x, y, l, m 1) 41

42 Laufzeit: Suche in sortierten Folgen T (0) = T (1) = a T (n) = T ( n/2 ) + b mit Konstanten a, b für n = 2 k, also k = log n: T (n) = T (n/2 1 ) + b = T (n/2 2 ) + b + b = T (n/2 3 ) + 3b... = T (n/2 k ) + kb = T (n/n) + kb = a + kb = a + b log n Laufzeit: O(log n) 42

43 Häufig vorkommende Rekurrenzen T (n) = T (n 1) = T (0) + n O(n) T (n) = T (n 1) + n... = T (0) + n 2 O(n 2 ) T (n) = T (n/2) = T (0) + log n O(log n) T (n) = T (n/2) + n... = T (0) + n log n O(n log n) T (n) = 2T (n/2) = 2 log n T (0) + 2 log n log n O(n log n) T (n) = 2T (n 1) + 1 O(2 n ) Allgemeines Verfahren zum Lösen von Rekurrenzen: Master-Theorem 43

44 Klassisches Beispiel: Türme von Hanoi Positionen A, B.C n Scheiben {1,..., n} der Größen 1,..., n Bedingung: Scheibe i darf nur dann auf Scheibe j liegen, wenn i < j zulässige Bewegungen (zusammen ein Zug): Nimm die obere Scheibe i von Position x {A, B, C} und Lege diese Scheibe i auf Position y {A, B, C}, sofern damit auf Position y die Bedingung nicht verletzt wird Startsituation: Auf Position A ein Turm aus n (zulässig) gestapelten Scheiben, Positionen B, C leer Zielsituation: Auf Position B ein Turm aus n (zulässig) gestapelten Scheiben, Positionen A, C leer gesucht: Folge von Schritten vom Start- zum Zielzustand 44

45 Türme von Hanoi: rekursiver Algorithmus Verschiebe einen Hanoi-Turm der Höhe n von Position A zu Position B, falls nötig, unter Verwendung der Position C: Spezifikation: V: (x : n, y : 0, z : 0), l = () N: (x : 0, y : n, z : 0), l enthält die Folge aller Züge (Start- und Zielposition der bewegten Scheibe) Algorithmus Hanoi(x, y, z): Basisfall: n = 0 (keine Bewegung) Rekursionsschritt: 1. die oberen n 1 Scheiben von Position x zu Position z verschieben, falls nötig, unter Verwendung der Position y (rekursiv), 2. Verschiebe die größte Scheibe von Position x zu Position y, Zug (x y) an l anhängen 3. die n 1 Scheiben von Position z zu Position y verschieben, falls nötig, unter Verwendung der Position x (rekursiv). 45

Was bisher geschah Modellierung von Daten durch Mengen Beziehungen (Zusammenhänge und Eigenschaften) durch Relationen, Graphen und Funktionen

Was bisher geschah Modellierung von Daten durch Mengen Beziehungen (Zusammenhänge und Eigenschaften) durch Relationen, Graphen und Funktionen Was bisher geschah Modellierung von Daten durch Mengen Beziehungen (Zusammenhänge und Eigenschaften) durch Relationen, Graphen und Funktionen Anforderungen durch Logiken Modellierung zusammenhängender

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

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 und Datenstrukturen Effizienz und Funktionenklassen

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

Mehr

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

Algorithmen und Datenstrukturen (für ET/IT)

Algorithmen und Datenstrukturen (für ET/IT) Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 2017 Dr. Stefanie Demirci Computer Aided Medical Procedures Technische Universität München Programm heute 1 Einführung 2 Grundlagen von Algorithmen

Mehr

Übung zur Vorlesung Berechenbarkeit und Komplexität

Übung zur Vorlesung Berechenbarkeit und Komplexität RWTH Aachen Lehrgebiet Theoretische Informatik Reidl Ries Rossmanith Sanchez Tönnis WS 2012/13 Übungsblatt 7 26.11.2012 Übung zur Vorlesung Berechenbarkeit und Komplexität Aufgabe T15 Entwickeln Sie ein

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

Informatik I Komplexität von Algorithmen

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

Mehr

Ü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

Programmieren und Problemlösen

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

Mehr

Kapitel 10. Komplexität von Algorithmen und Sortieralgorithmen

Kapitel 10. Komplexität von Algorithmen und Sortieralgorithmen Kapitel 10 Komplexität von Algorithmen und Sortieralgorithmen Arrays 1 Ziele Komplexität von Algorithmen bestimmen können (in Bezug auf Laufzeit und auf Speicherplatzbedarf) Sortieralgorithmen kennenlernen:

Mehr

2. Algorithmen und Algorithmisierung Algorithmen und Algorithmisierung von Aufgaben

2. Algorithmen und Algorithmisierung Algorithmen und Algorithmisierung von Aufgaben Algorithmen und Algorithmisierung von Aufgaben 2-1 Algorithmisierung: Formulierung (Entwicklung, Wahl) der Algorithmen + symbolische Darstellung von Algorithmen Formalismen für die symbolische Darstellung

Mehr

Kapitel 9. Komplexität von Algorithmen und Sortieralgorithmen

Kapitel 9. Komplexität von Algorithmen und Sortieralgorithmen Kapitel 9 Komplexität von Algorithmen und Sortieralgorithmen Arrays 1 Ziele Komplexität von Algorithmen bestimmen können (in Bezug auf Laufzeit und auf Speicherplatzbedarf) Sortieralgorithmen kennenlernen:

Mehr

Prof. Dr. Margarita Esponda

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

Mehr

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

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

Mehr

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

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

Mehr

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

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

Mehr

3.3 Laufzeit von Programmen

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

Mehr

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

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

Mehr

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

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

Mehr

Kapitel 9. Komplexität von Algorithmen und Sortieralgorithmen

Kapitel 9. Komplexität von Algorithmen und Sortieralgorithmen 1 Kapitel 9 Komplexität von Algorithmen und Sortieralgorithmen Ziele 2 Komplexität von Algorithmen bestimmen können (in Bezug auf Laufzeit und auf Speicherplatzbedarf) Sortieralgorithmen kennenlernen:

Mehr

Algorithmen und Datenstrukturen I Grundlagen

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

Mehr

Ü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

2. Algorithmische Methoden 2.1 Rekursion. 18. April 2017

2. Algorithmische Methoden 2.1 Rekursion. 18. April 2017 2. Algorithmische Methoden 2.1 Rekursion 18. April 2017 Rekursiver Algorithmus Ein rekursiver Algorithmus löst ein Problem, indem er eine oder mehrere kleinere Instanzen des gleichen Problems löst. Beispiel

Mehr

Komplexität von Algorithmen

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

Mehr

Achtung: Groß O definiert keine totale Ordnungsrelation auf der Menge aller Funktionen! Beweis: Es gibt positive Funktionen f und g so, dass

Achtung: Groß O definiert keine totale Ordnungsrelation auf der Menge aller Funktionen! Beweis: Es gibt positive Funktionen f und g so, dass Achtung: Groß O definiert keine totale Ordnungsrelation auf der Menge aller Funktionen! Beweis: Es gibt positive Funktionen f und g so, dass f O g und auch g O f. Wähle zum Beispiel und G. Zachmann Informatik

Mehr

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

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

Mehr

Datenstrukturen & Algorithmen

Datenstrukturen & Algorithmen Datenstrukturen & Algorithmen 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

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

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

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

5. Algorithmen. K. Bothe, Institut für Informatik, HU Berlin, GdP, WS 2015/16

5. Algorithmen. K. Bothe, Institut für Informatik, HU Berlin, GdP, WS 2015/16 5. Algorithmen K. Bothe, Institut für Informatik, HU Berlin, GdP, WS 2015/16 Version: 21. Okt. 2015 1. Berechne 2 n. Zu lösende Probleme 2. Berechne die Fakultät einer nat. Zahl: n! = 1 * 2 *... n 3. Entscheide,

Mehr

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

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

Mehr

Algorithmen und Datenstrukturen 1 Kapitel 5

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

Mehr

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

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

Mehr

Übung Algorithmen und Datenstrukturen

Übung Algorithmen und Datenstrukturen Übung Algorithmen und Datenstrukturen Sommersemester 017 Marc Bux, Humboldt-Universität zu Berlin Agenda 1. Vorrechnen von Aufgabenblatt 1. Wohlgeformte Klammerausdrücke 3. Teile und Herrsche Agenda 1.

Mehr

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

Ü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

2. Algorithmenbegriff

2. Algorithmenbegriff 2. Algorithmenbegriff Keine Algorithmen: Anleitungen, Kochrezepte, Wegbeschreibungen,... Algorithmus: Berechnungsvorschrift, die angibt, wie durch Ausführung bestimmter Elementaroperationen aus Eingabegrößen

Mehr

2. Effizienz von Algorithmen

2. Effizienz von Algorithmen Effizienz von Algorithmen 2. Effizienz von Algorithmen Effizienz von Algorithmen, Random Access Machine Modell, Funktionenwachstum, Asymptotik [Cormen et al, Kap. 2.2,3,4.2-4.4 Ottman/Widmayer, Kap. 1.1]

Mehr

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

Übung zu Algorithmen und Datenstrukturen (für ET/IT)

Übung zu Algorithmen und Datenstrukturen (für ET/IT) Übung zu Algorithmen und Datenstrukturen (für ET/IT) Wintersemester 2012/13 Jakob Vogel Computer-Aided Medical Procedures Technische Universität München Komplexität von Programmen Laufzeit kann näherungsweise

Mehr

Einführung in die Programmierung

Einführung in die Programmierung Einleitung Gliederung Einführung in die Programmierung Wintersemester 2017/18 Zum Begriff Informatik Zum Begriff Algorithmus Zum Begriff Programmieren Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering

Mehr

Einführung in die Programmierung Wintersemester 2016/17

Einführung in die Programmierung Wintersemester 2016/17 Einführung in die Programmierung Wintersemester 2016/17 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund Einleitung Gliederung Zum Begriff Informatik Zum

Mehr

11. Rekursion, Komplexität von Algorithmen

11. Rekursion, Komplexität von Algorithmen 11. Rekursion, Komplexität von Algorithmen Teil 2 Java-Beispiele: Power1.java Hanoi.java K. Bothe, Institut für Informatik, HU Berlin, GdP, WS 2015/16 Version: 23. Nov. 2015 Anwendung der Rekursion Rekursiv

Mehr

Einführung in die Programmierung

Einführung in die Programmierung Einleitung Gliederung Einführung in die Programmierung Wintersemester 08/09 Zum Begriff Informatik Zum Begriff Algorithmus Zum Begriff Programmieren Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering

Mehr

Algorithmenbegriff: Berechenbarkeit. Algorithmenanalyse. (Berechnung der Komplexität)

Algorithmenbegriff: Berechenbarkeit. Algorithmenanalyse. (Berechnung der Komplexität) Über-/Rückblick Algorithmenbegriff: Berechenbarkeit Turing-Maschine RAM µ-rekursive Funktionen Zeit Platz Komplexität Algorithmentechniken Algorithmenanalyse (Berechnung der Komplexität) Rekursion Iteration

Mehr

Informatik I Komplexität von Algorithmen

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

Mehr

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

WS 2009/10. Diskrete Strukturen

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

Mehr

abgeschlossen unter,,,, R,

abgeschlossen unter,,,, R, Was bisher geschah Turing-Maschinen können Sprachen L X akzeptieren entscheiden Funktionen berechnen f : X X (partiell) Menge aller Turing-akzeptierbaren Sprachen genau die Menge aller Chomsky-Typ-0-Sprachen

Mehr

Kapitel 1: Einleitung. Gliederung. Zum Begriff Informatik Zum Begriff Algorithmus Zum Begriff Programmieren

Kapitel 1: Einleitung. Gliederung. Zum Begriff Informatik Zum Begriff Algorithmus Zum Begriff Programmieren Kapitel 1: Einleitung Wintersemester 2006/07 Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Gliederung Zum Begriff Informatik

Mehr

Komplexität von Algorithmen:

Komplexität von Algorithmen: Komplexität von Algorithmen: Ansatz: Beschreiben/erfassen der Komplexität über eine Funktion, zur Abschätzung des Rechenaufwandes abhängig von der Größe der Eingabe n Uns interessiert: (1) Wie sieht eine

Mehr

Übung Algorithmen und Datenstrukturen

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

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Dipl. Inform. Andreas Wilkens aw@awilkens.com Überblick Grundlagen Definitionen Eigene Entwicklungen Datenstrukturen Elementare Datentypen Abstrakte Datentypen Elementare

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

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

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

Mehr

Informatik II, SS 2016

Informatik II, SS 2016 Informatik II - SS 2016 (Algorithmen & Datenstrukturen) Vorlesung 3 (27.4.2014) O-Notation, Asymptotische Analyse, Sortieren III Algorithmen und Komplexität Selection Sort Algorithmus SelectionSort (informell):

Mehr

Ü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

Grundlagen der Programmierung

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

Mehr

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

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

Mehr

Das Suchproblem. Gegeben Menge von Datensätzen. Beispiele Telefonverzeichnis, Wörterbuch, Symboltabelle

Das Suchproblem. Gegeben Menge von Datensätzen. Beispiele Telefonverzeichnis, Wörterbuch, Symboltabelle 122 4. Suchen Lineare Suche, Binäre Suche, Interpolationssuche, Untere Schranken [Ottman/Widmayer, Kap. 3.2, Cormen et al, Kap. 2: Problems 2.1-3,2.2-3,2.3-5] 123 Das Suchproblem Gegeben Menge von Datensätzen.

Mehr

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

7. Sortieren Lernziele. 7. Sortieren

7. Sortieren Lernziele. 7. Sortieren 7. Sortieren Lernziele 7. Sortieren Lernziele: Die wichtigsten Sortierverfahren kennen und einsetzen können, Aufwand und weitere Eigenschaften der Sortierverfahren kennen, das Problemlösungsparadigma Teile-und-herrsche

Mehr

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

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

Mehr

Algorithmen und Datenstrukturen 1. 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

Algorithmen und Datenstrukturen

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

Mehr

Informatik I Komplexität von Algorithmen

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

Mehr

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

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

Übung zu Algorithmen und Datenstrukturen (für ET/IT)

Übung zu Algorithmen und Datenstrukturen (für ET/IT) Übung zu Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 2017 Rüdiger Göbl, Mai Bui Computer Aided Medical Procedures Technische Universität München Wiederholung: Validation Validation: nicht-formaler

Mehr

Inhalt. 1. Einführung in die Informatik. 2. Algorithmen Definition, Eigenschaften, Entwurf Darstellung von Algorithmen Beispiele.

Inhalt. 1. Einführung in die Informatik. 2. Algorithmen Definition, Eigenschaften, Entwurf Darstellung von Algorithmen Beispiele. 1. Einführung in die Informatik Inhalt 2. Algorithmen Definition, Eigenschaften, Entwurf Darstellung von Algorithmen Beispiele Peter Sobe 1 Einführende Beispiele 2. Algorithmen Täglich werden Verarbeitungsvorschriften

Mehr

Algorithmen und Datenstrukturen 1. EINLEITUNG. Algorithmen und Datenstrukturen - Ma5hias Thimm 1

Algorithmen und Datenstrukturen 1. EINLEITUNG. Algorithmen und Datenstrukturen - Ma5hias Thimm 1 Algorithmen und Datenstrukturen 1. EINLEITUNG Algorithmen und Datenstrukturen - Ma5hias Thimm (thimm@uni-koblenz.de) 1 Allgemeines Einleitung Zu den Begriffen: Algorithmen und Datenstrukturen systematische

Mehr

Übung zu Algorithmen und Datenstrukturen (für ET/IT)

Übung zu Algorithmen und Datenstrukturen (für ET/IT) Übung zu Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 2017 Rüdiger Göbl, Mai Bui Computer Aided Medical Procedures Technische Universität München Fibonacci Zahlen Fibonacci Folge Die Fibonacci

Mehr

Auswählen nach Rang (Selektion)

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

Mehr

Einführung in die Informatik Algorithmen und Datenstrukturen. Thema 17 Sortieren

Einführung in die Informatik Algorithmen und Datenstrukturen. Thema 17 Sortieren Einführung in die Informatik Algorithmen und Datenstrukturen Thema 17 Sortieren Sortierproblem Es gibt eine Menge von Datensätzen, und jeder dieser Sätze besitzt einen (möglichst eindeutigen) Schlüssel.

Mehr

Das Suchproblem. Gegeben Menge von Datensätzen. Beispiele Telefonverzeichnis, Wörterbuch, Symboltabelle

Das Suchproblem. Gegeben Menge von Datensätzen. Beispiele Telefonverzeichnis, Wörterbuch, Symboltabelle 119 4. Suchen Lineare Suche, Binäre Suche, Interpolationssuche, Exponentielle Suche, Untere Schranken [Ottman/Widmayer, Kap. 3.2, Cormen et al, Kap. 2: Problems 2.1-3,2.2-3,2.3-5] 120 Das Suchproblem Gegeben

Mehr

Das Suchproblem 4. Suchen Das Auswahlproblem Suche in Array

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

Mehr

Einführung in die Informatik I

Einführung in die Informatik I Einführung in die Informatik I LOOP Programme, rekursive Funktionen und der Turm von Hanoi Prof. Dr. Nikolaus Wulff Berechenbarkeit Mitte des 20. Jahrhunderts beantworteten Pioniere, wie Alan M. Turing

Mehr

Suchen und Sortieren

Suchen und Sortieren Suchen und Sortieren Suchen Sortieren Mischen Zeitmessungen Bewertung von Sortier-Verfahren Seite 1 Suchverfahren Begriffe Suchen = Bestimmen der Position (Adresse) eines Wertes in einer Datenfolge Sequentielles

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

Überblick. 1 Vorbemerkungen. 2 Algorithmen. 3 Eigenschaften von Algorithmen. 4 Historischer Überblick. Einführung

Überblick. 1 Vorbemerkungen. 2 Algorithmen. 3 Eigenschaften von Algorithmen. 4 Historischer Überblick. Einführung Teil I Einführung Überblick 1 Vorbemerkungen 2 Algorithmen 3 4 Historischer Überblick Prof. G. Stumme Algorithmen & Datenstrukturen Sommersemester 2009 1 1 Vorbemerkungen Was ist Informatik? Informatik

Mehr

Algorithmen und Datenstrukturen Heapsort

Algorithmen und Datenstrukturen Heapsort Algorithmen und Datenstrukturen 2 5 Heapsort In diesem Kapitel wird Heapsort, ein weiterer Sortieralgorithmus, vorgestellt. Dieser besitzt wie MERGE-SORT eine Laufzeit von O(n log n), sortiert jedoch das

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 (für ET/IT)

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

Mehr

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

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

Mehr

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

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

Mehr

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

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

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Technische Universität München SoSe 2017 Fakultät für Informatik, I-16 Lösungsblatt 4 Dr. Stefanie Demirci 31. Mai 2017 Rüdiger Göbl, Mai Bui Algorithmen und Datenstrukturen Aufgabe 1 Komplexität Berechnung

Mehr

Technische Universität München SoSe 2018 Fakultät für Informatik, I Mai 2018 Dr. Stefanie Demirci

Technische Universität München SoSe 2018 Fakultät für Informatik, I Mai 2018 Dr. Stefanie Demirci Name: Vorname: Matr. Nr.: Technische Universität München SoSe 2018 Fakultät für Informatik, I-16 9. Mai 2018 Dr. Stefanie Demirci Probeklausur zu Algorithmen und Datenstrukturen Allgemeine Hinweise Die

Mehr

Algorithmik Übung 2 Prof. Dr. Heiner Klocke Winter 11/

Algorithmik Übung 2 Prof. Dr. Heiner Klocke Winter 11/ Algorithmik Übung 2 Prof. Dr. Heiner Klocke Winter 11/12 23.10.2011 Themen: Asymptotische Laufzeit von Algorithmen Experimentelle Analyse von Algorithmen Aufgabe 1 ( Asymptotische Laufzeit ) Erklären Sie,

Mehr