Datenstrukturen und Algorithmen
|
|
|
- Helge Axel Braun
- vor 8 Jahren
- Abrufe
Transkript
1 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 Group 9. April 2015
2 Joost-Pieter Katoen Datenstrukturen und Algorithmen 2/54 Übersicht 1 Was sind Algorithmen? Algorithmen und Datenstrukturen Effizienz von Algorithmen 2 Average, Best und Worst Case Laufzeitanalyse Lineare Suche Average-Case Analyse von linearer Suche 3 Organisatorisches Übersicht Übungsbetrieb Prüfung
3 Was sind Algorithmen? Joost-Pieter Katoen Datenstrukturen und Algorithmen 3/54 Übersicht 1 Was sind Algorithmen? Algorithmen und Datenstrukturen Effizienz von Algorithmen 2 Average, Best und Worst Case Laufzeitanalyse Lineare Suche Average-Case Analyse von linearer Suche 3 Organisatorisches Übersicht Übungsbetrieb Prüfung
4 Was sind Algorithmen? Joost-Pieter Katoen Datenstrukturen und Algorithmen 4/54 Algorithmen Algorithmus Eine wohldefinierte Rechenvorschrift, um ein Problem durch ein Computerprogramm zu lösen.
5 Was sind Algorithmen? Joost-Pieter Katoen Datenstrukturen und Algorithmen 4/54 Algorithmen Algorithmus Eine wohldefinierte Rechenvorschrift, um ein Problem durch ein Computerprogramm zu lösen. Beispiel (Algorithmen) Quicksort, Heapsort, Lineare und Binäre Suche, Graphalgorithmen.
6 Was sind Algorithmen? Joost-Pieter Katoen Datenstrukturen und Algorithmen 4/54 Algorithmen Algorithmus Eine wohldefinierte Rechenvorschrift, um ein Problem durch ein Computerprogramm zu lösen. Beispiel (Algorithmen) Quicksort, Heapsort, Lineare und Binäre Suche, Graphalgorithmen. Löst ein Rechenproblem, beschrieben durch die zu verarbeitenden Eingaben (Vorbedingung / precondition) und die erwartete Ausgabe (Nachbedingung / postcondition), mithilfe einer Folge von Rechenschritten.
7 Was sind Algorithmen? Joost-Pieter Katoen Datenstrukturen und Algorithmen 5/54 Beispiel Rechenproblem: Sortieren Beispiel Eingabe: Eine Folge von n natürlichen Zahlen a 1, a 2,..., a n mit a i N. Ausgabe: Eine Permutation (Umordnung) b 1, b 2,..., b n der Eingabefolge, sodass b 1 b 2... b n.
8 Was sind Algorithmen? Joost-Pieter Katoen Datenstrukturen und Algorithmen 6/54 Andere Rechenprobleme: kürzester Weg
9 Was sind Algorithmen? Joost-Pieter Katoen Datenstrukturen und Algorithmen 7/54 Andere Rechenprobleme: kürzester Weg
10 Was sind Algorithmen? Joost-Pieter Katoen Datenstrukturen und Algorithmen 8/54 Andere Rechenprobleme: kürzester Weg Beispiel (kürzester Weg) Eingabe: 1. Eine Straßenkarte, auf welcher der Abstand zwischen jedem Paar benachbarter Kreuzungen eingezeichnet ist, 2. eine Startkreuzung s und 3. eine Zielkreuzung z. Ausgabe: Ein kürzeste Weg von s nach z.
11 Was sind Algorithmen? Joost-Pieter Katoen Datenstrukturen und Algorithmen 9/54 Andere Rechenprobleme: maximale Flüsse
12 Was sind Algorithmen? Joost-Pieter Katoen Datenstrukturen und Algorithmen 10/54 Andere Rechenprobleme: maximale Flüsse
13 Was sind Algorithmen? Joost-Pieter Katoen Datenstrukturen und Algorithmen 11/54 Andere Rechenprobleme: maximale Flüsse
14 Was sind Algorithmen? Joost-Pieter Katoen Datenstrukturen und Algorithmen 12/54 Andere Rechenprobleme: maximale Flüsse
15 Was sind Algorithmen? Joost-Pieter Katoen Datenstrukturen und Algorithmen 13/54 Andere Rechenprobleme: maximale Flüsse
16 Was sind Algorithmen? Joost-Pieter Katoen Datenstrukturen und Algorithmen 14/54 Andere Rechenprobleme: maximale Flüsse
17 Was sind Algorithmen? Joost-Pieter Katoen Datenstrukturen und Algorithmen 15/54 Andere Rechenprobleme: maximale Flüsse
18 Was sind Algorithmen? Joost-Pieter Katoen Datenstrukturen und Algorithmen 16/54 Andere Rechenprobleme: maximale Flüsse
19 Was sind Algorithmen? Joost-Pieter Katoen Datenstrukturen und Algorithmen 17/54 Andere Rechenprobleme: maximale Flüsse
20 Was sind Algorithmen? Joost-Pieter Katoen Datenstrukturen und Algorithmen 18/54 Andere Rechenprobleme: maximale Flüsse
21 Was sind Algorithmen? Joost-Pieter Katoen Datenstrukturen und Algorithmen 19/54 Andere Rechenprobleme: maximale Flüsse
22 Was sind Algorithmen? Joost-Pieter Katoen Datenstrukturen und Algorithmen 20/54 Andere Rechenprobleme: maximale Flüsse Beispiel (maximale Flüsse) Eingabe: 1. Eine Straßenkarte, auf der die Kapazität der Straßen eingezeichnet ist, 2. eine Quelle und 3. eine Senke. Ausgabe: Die maximale Rate, mit der Material (= Zuschauer) von der Quelle bis zur Senke (= Stadion) transportiert werden kann, ohne die Kapazitätsbeschränkungen der Straßen zu verletzen.
23 Was sind Algorithmen? Joost-Pieter Katoen Datenstrukturen und Algorithmen 21/54 Andere Rechenprobleme: das CD-Brennproblem
24 Was sind Algorithmen? Joost-Pieter Katoen Datenstrukturen und Algorithmen 22/54 Andere Rechenprobleme: das CD-Brennproblem Betrachte alle Schallplatten von Nina Hagen:
25 Was sind Algorithmen? Joost-Pieter Katoen Datenstrukturen und Algorithmen 22/54 Andere Rechenprobleme: das CD-Brennproblem Betrachte alle Schallplatten von Nina Hagen: Wie bekommen wir eine Kompilation ihrer Songs auf einige CDs?
26 Was sind Algorithmen? Joost-Pieter Katoen Datenstrukturen und Algorithmen 23/54 Andere Rechenprobleme: das CD-Brennproblem Beispiel (CD-Brennproblem) Eingabe: 1. N N Songs, Song i dauert 0 < n i 80 Minuten, 2. k N CDs, jeweils mit Kapazität: 80 Minuten.
27 Was sind Algorithmen? Joost-Pieter Katoen Datenstrukturen und Algorithmen 23/54 Andere Rechenprobleme: das CD-Brennproblem Beispiel (CD-Brennproblem) Eingabe: 1. N N Songs, Song i dauert 0 < n i 80 Minuten, 2. k N CDs, jeweils mit Kapazität: 80 Minuten. Ausgabe: k CDs gefüllt mit einer Auswahl der N Songs, sodass 1. die Songs in chronologische Reihenfolge vorkommen und
28 Was sind Algorithmen? Joost-Pieter Katoen Datenstrukturen und Algorithmen 23/54 Andere Rechenprobleme: das CD-Brennproblem Beispiel (CD-Brennproblem) Eingabe: 1. N N Songs, Song i dauert 0 < n i 80 Minuten, 2. k N CDs, jeweils mit Kapazität: 80 Minuten. Ausgabe: k CDs gefüllt mit einer Auswahl der N Songs, sodass 1. die Songs in chronologische Reihenfolge vorkommen und 2. die totale Dauer der (verschiedenen) ausgewählten Songs maximiert wird, wobei ein Song komplett auf eine CD gebrannt werden soll.
29 Was sind Algorithmen? Joost-Pieter Katoen Datenstrukturen und Algorithmen 24/54 Algorithmen Kernpunkte Korrektheit: Bei jeder Eingabeinstanz stoppt der Algorithmus mit der korrekten Ausgabe.
30 Was sind Algorithmen? Joost-Pieter Katoen Datenstrukturen und Algorithmen 24/54 Algorithmen Kernpunkte Korrektheit: Bei jeder Eingabeinstanz stoppt der Algorithmus mit der korrekten Ausgabe. Eleganz
31 Was sind Algorithmen? Joost-Pieter Katoen Datenstrukturen und Algorithmen 24/54 Algorithmen Kernpunkte Korrektheit: Bei jeder Eingabeinstanz stoppt der Algorithmus mit der korrekten Ausgabe. Eleganz Effizienz: Wieviel Zeit und Speicherplatz wird benötigt?
32 Was sind Algorithmen? Joost-Pieter Katoen Datenstrukturen und Algorithmen 24/54 Algorithmen Kernpunkte Korrektheit: Bei jeder Eingabeinstanz stoppt der Algorithmus mit der korrekten Ausgabe. Eleganz Effizienz: Wieviel Zeit und Speicherplatz wird benötigt? Effiziente Algorithmen verwenden effektive Datenstrukturen.
33 Was sind Algorithmen? Joost-Pieter Katoen Datenstrukturen und Algorithmen 25/54 Datenstrukturen Datenstruktur Ein mathematisches Objekt zur Speicherung von Daten. Man spricht von einer Struktur, da die Daten in einer bestimmten Art und Weise angeordnet und verknüpft werden, um den Zugriff auf sie und ihre Verwaltung geeignet und effizient zu ermöglichen. Beispiele (Datenstrukturen) Array, Baum, Kellerspeicher (stack), Liste, Warteschlange (queue), Heap, Hashtabelle...
34 Was sind Algorithmen? Joost-Pieter Katoen Datenstrukturen und Algorithmen 26/54 Effizienz von Algorithmen Kriterien Wichtige Kriterien sind (für eine bestimmte Eingabe): die benötigte Zeit, Zeitkomplexität der benötigte Platz. Platzkomplexität Zeitkomplexität Platzkomplexität Komplexität des Algorithmus Ziel Beurteilung der Effizienz von Algorithmen unabhängig von verwendetem Computer, Programmiersprache, Fähigkeiten des Programmierers usw.
35 Was sind Algorithmen? Joost-Pieter Katoen Datenstrukturen und Algorithmen 27/54 Effizienz von Algorithmen Elementare Operation Die Analyse hängt von der Wahl der elementaren Operationen ab, etwa: Vergleich zweier Zahlen beim Sortieren eines Arrays von Zahlen. Multiplikation zweier Fließkommazahlen bei Matrixmultiplikation.
36 Was sind Algorithmen? Joost-Pieter Katoen Datenstrukturen und Algorithmen 27/54 Effizienz von Algorithmen Elementare Operation Die Analyse hängt von der Wahl der elementaren Operationen ab, etwa: Vergleich zweier Zahlen beim Sortieren eines Arrays von Zahlen. Multiplikation zweier Fließkommazahlen bei Matrixmultiplikation. Elementare Operationen Anzahl der elementaren Operationen sollte eine gute Abschätzung für die Anzahl der Gesamtoperationen sein. Anzahl der elementaren Operationen bildet die Basis zur Bestimmung der Wachstumsrate der Zeitkomplexität bei immer längeren Eingaben.
37 Was sind Algorithmen? Joost-Pieter Katoen Datenstrukturen und Algorithmen 28/54 Effizienz von Algorithmen Beispiele Technologie führt nur zu Verbesserung um einen konstanten Faktor: Beispiel Selbst ein Supercomputer kann einen schlechten Algorithmus nicht retten: Für genügend große Eingaben gewinnt immer der schnellere Algorithmus auf dem langsameren Computer.
38 Was sind Algorithmen? Joost-Pieter Katoen Datenstrukturen und Algorithmen 28/54 Effizienz von Algorithmen Beispiele Technologie führt nur zu Verbesserung um einen konstanten Faktor: Beispiel Selbst ein Supercomputer kann einen schlechten Algorithmus nicht retten: Für genügend große Eingaben gewinnt immer der schnellere Algorithmus auf dem langsameren Computer. Beispiel Typische Laufzeiten (bis auf einen konstanten Faktor) für Eingabelänge n: 1 konstant n log n log n logarithmisch n 2 quadratisch n linear 2 n exponentiell
39 Was sind Algorithmen? Joost-Pieter Katoen Datenstrukturen und Algorithmen 29/54 Zeitkomplexität in der Praxis I Beispiel (Tatsächliche Laufzeiten) Komplexität Länge n 33n 46n log n 13n 2 3,4n 3 2 n 10 0,00033 s 0,0015 s 0,0013 s 0,0034 s 0,001 s ,0033 s 0,03 s 0,13 s 3,4 s y ,033 s 0,45 s 13 s 0,94 h ,33 s 6,1 s 1300 s 39 d ,3 s 1,3 m 1,5 d 108 y Benötigte Zeit (s = Sekunde, h = Stunde, d = Tag, y = Jahr) Der Einfluss großer konstanter Faktoren nimmt mit wachsendem n ab.
40 Was sind Algorithmen? Joost-Pieter Katoen Datenstrukturen und Algorithmen 30/54 Zeitkomplexität in der Praxis II Beispiel (Größte lösbare Eingabelänge) Komplexität Verfügbare Zeit 33n 46n log n 13n 2 3,4n 3 2 n 1 s m h Größte lösbare Eingabelänge
41 Was sind Algorithmen? Joost-Pieter Katoen Datenstrukturen und Algorithmen 30/54 Zeitkomplexität in der Praxis II Beispiel (Größte lösbare Eingabelänge) Komplexität Verfügbare Zeit 33n 46n log n 13n 2 3,4n 3 2 n 1 s m h Größte lösbare Eingabelänge Eine 60-fach längere Eingabe lässt sich nicht durch um den Faktor 60 längere Zeit (oder höhere Geschwindigkeit) bewältigen.
42 Was sind Algorithmen? Joost-Pieter Katoen Datenstrukturen und Algorithmen 31/54 Schnellere Computer... Sei N die größte Eingabelänge, die in fester Zeit gelöst werden kann. Frage Wie verhält sich N, wenn wir einen K-mal schnelleren Rechner verwenden? #Operationen benötigt für Eingabe der Länge n Größte lösbare Eingabelänge log n n K N n 2 K N 2 n N + log K N K
43 Average, Best und Worst Case Laufzeitanalyse Joost-Pieter Katoen Datenstrukturen und Algorithmen 32/54 Übersicht 1 Was sind Algorithmen? Algorithmen und Datenstrukturen Effizienz von Algorithmen 2 Average, Best und Worst Case Laufzeitanalyse Lineare Suche Average-Case Analyse von linearer Suche 3 Organisatorisches Übersicht Übungsbetrieb Prüfung
44 Average, Best und Worst Case Laufzeitanalyse Joost-Pieter Katoen Datenstrukturen und Algorithmen 33/54 Idee Wir betrachten einen gegebenen Algorithmus A. Worst-Case Laufzeit Die Worst-Case Laufzeit von A ist die von A maximal benötigte Anzahl elementarer Operationen auf einer beliebigen Eingabe der Länge n.
45 Average, Best und Worst Case Laufzeitanalyse Joost-Pieter Katoen Datenstrukturen und Algorithmen 33/54 Idee Wir betrachten einen gegebenen Algorithmus A. Worst-Case Laufzeit Die Worst-Case Laufzeit von A ist die von A maximal benötigte Anzahl elementarer Operationen auf einer beliebigen Eingabe der Länge n. Best-Case Laufzeit Die Best-Case Laufzeit von A ist die von A minimal benötigte Anzahl elementarer Operationen auf einer beliebigen Eingabe der Länge n.
46 Average, Best und Worst Case Laufzeitanalyse Joost-Pieter Katoen Datenstrukturen und Algorithmen 33/54 Idee Wir betrachten einen gegebenen Algorithmus A. Worst-Case Laufzeit Die Worst-Case Laufzeit von A ist die von A maximal benötigte Anzahl elementarer Operationen auf einer beliebigen Eingabe der Länge n. Best-Case Laufzeit Die Best-Case Laufzeit von A ist die von A minimal benötigte Anzahl elementarer Operationen auf einer beliebigen Eingabe der Länge n. Average-Case Laufzeit Die Average-Case Laufzeit von A ist die von A durchschnittlich benötigte Anzahl elementarer Operationen auf einer beliebigen Eingabe der Länge n.
47 Average, Best und Worst Case Laufzeitanalyse Joost-Pieter Katoen Datenstrukturen und Algorithmen 33/54 Idee Wir betrachten einen gegebenen Algorithmus A. Worst-Case Laufzeit Die Worst-Case Laufzeit von A ist die von A maximal benötigte Anzahl elementarer Operationen auf einer beliebigen Eingabe der Länge n. Best-Case Laufzeit Die Best-Case Laufzeit von A ist die von A minimal benötigte Anzahl elementarer Operationen auf einer beliebigen Eingabe der Länge n. Average-Case Laufzeit Die Average-Case Laufzeit von A ist die von A durchschnittlich benötigte Anzahl elementarer Operationen auf einer beliebigen Eingabe der Länge n. Alle drei sind Funktionen: Laufzeit in Abhängigkeit von der Eingabelänge!
48 Average, Best und Worst Case Laufzeitanalyse Joost-Pieter Katoen Datenstrukturen und Algorithmen 34/54 Beispiel W (n) Laufzeit A(n) B(n) Eingabelänge n
49 Average, Best und Worst Case Laufzeitanalyse Joost-Pieter Katoen Datenstrukturen und Algorithmen 35/54 Formale Definition (I) Einige hilfreiche Begriffe D n = Menge aller Eingaben der Länge n t(i) = für Eingabe I benötigte Anzahl elementarer Operationen Pr(I) = Wahrscheinlichkeit, dass Eingabe I auftritt
50 Average, Best und Worst Case Laufzeitanalyse Joost-Pieter Katoen Datenstrukturen und Algorithmen 35/54 Formale Definition (I) Einige hilfreiche Begriffe D n = Menge aller Eingaben der Länge n t(i) = für Eingabe I benötigte Anzahl elementarer Operationen Pr(I) = Wahrscheinlichkeit, dass Eingabe I auftritt Woher kennen wir: t(i)? Durch Analyse des fraglichen Algorithmus. Pr(I)? Erfahrung, Vermutung (z. B. alle Eingaben treten mit gleicher Wahrscheinlichkeit auf ).
51 Average, Best und Worst Case Laufzeitanalyse Joost-Pieter Katoen Datenstrukturen und Algorithmen 36/54 Formale Definition (II) Worst-Case Laufzeit Die Worst-Case Laufzeit von A ist die von A maximal benötigte Anzahl elementarer Operationen auf einer beliebigen Eingabe der Länge n: W (n) = max{ t(i) I D n }.
52 Average, Best und Worst Case Laufzeitanalyse Joost-Pieter Katoen Datenstrukturen und Algorithmen 36/54 Formale Definition (II) Worst-Case Laufzeit Die Worst-Case Laufzeit von A ist die von A maximal benötigte Anzahl elementarer Operationen auf einer beliebigen Eingabe der Länge n: W (n) = max{ t(i) I D n }. Best-Case Laufzeit Die Best-Case Laufzeit von A ist die von A minimal benötigte Anzahl elementarer Operationen auf einer beliebigen Eingabe der Länge n: B(n) = min{ t(i) I D n }.
53 Average, Best und Worst Case Laufzeitanalyse Joost-Pieter Katoen Datenstrukturen und Algorithmen 37/54 Formale Definition (II) Average-Case Laufzeit Die Average-Case Laufzeit von A ist die von A durchschnittlich benötigte Anzahl elementarer Operationen auf einer beliebigen Eingabe der Länge n: A(n) = I D n Pr(I) t(i)
54 Average, Best und Worst Case Laufzeitanalyse Joost-Pieter Katoen Datenstrukturen und Algorithmen 38/54 Lineare Suche Rechenproblem Eingabe: Array E mit n Einträgen sowie das gesuchte Element K. Ausgabe: Ist K in E enthalten?
55 Average, Best und Worst Case Laufzeitanalyse Joost-Pieter Katoen Datenstrukturen und Algorithmen 38/54 Lineare Suche Rechenproblem Eingabe: Array E mit n Einträgen sowie das gesuchte Element K. Ausgabe: Ist K in E enthalten? 1 bool linsearch(int E[], int n, int K) { 2 for (int index = 0; index < n; index ++) { 3 if (E[index] == K) { 4 return true; // oder: return index; 5 } 6 } 7 return false; // nicht gefunden 8 }
56 Average, Best und Worst Case Laufzeitanalyse Joost-Pieter Katoen Datenstrukturen und Algorithmen 39/54 Lineare Suche Analyse Elementare Operation Vergleich einer ganzen Zahl K mit Element E[index].
57 Average, Best und Worst Case Laufzeitanalyse Joost-Pieter Katoen Datenstrukturen und Algorithmen 39/54 Lineare Suche Analyse Elementare Operation Vergleich einer ganzen Zahl K mit Element E[index]. Menge aller Eingaben D n ist die Menge aller Permutationen von n ganzen Zahlen, die ursprünglich aus einer Menge N > n ganzer Zahlen ausgewählt wurden.
58 Average, Best und Worst Case Laufzeitanalyse Joost-Pieter Katoen Datenstrukturen und Algorithmen 39/54 Lineare Suche Analyse Elementare Operation Vergleich einer ganzen Zahl K mit Element E[index]. Menge aller Eingaben D n ist die Menge aller Permutationen von n ganzen Zahlen, die ursprünglich aus einer Menge N > n ganzer Zahlen ausgewählt wurden. Zeitkomplexität
59 Average, Best und Worst Case Laufzeitanalyse Joost-Pieter Katoen Datenstrukturen und Algorithmen 39/54 Lineare Suche Analyse Elementare Operation Vergleich einer ganzen Zahl K mit Element E[index]. Menge aller Eingaben D n ist die Menge aller Permutationen von n ganzen Zahlen, die ursprünglich aus einer Menge N > n ganzer Zahlen ausgewählt wurden. Zeitkomplexität W (n) = n, da n Vergleiche notwendig sind, falls K nicht in E vorkommt (oder wenn K == E[n]).
60 Average, Best und Worst Case Laufzeitanalyse Joost-Pieter Katoen Datenstrukturen und Algorithmen 39/54 Lineare Suche Analyse Elementare Operation Vergleich einer ganzen Zahl K mit Element E[index]. Menge aller Eingaben D n ist die Menge aller Permutationen von n ganzen Zahlen, die ursprünglich aus einer Menge N > n ganzer Zahlen ausgewählt wurden. Zeitkomplexität W (n) = n, da n Vergleiche notwendig sind, falls K nicht in E vorkommt (oder wenn K == E[n]). B(n) = 1, da ein Vergleich ausreicht, wenn K gleich E[1] ist.
61 Average, Best und Worst Case Laufzeitanalyse Joost-Pieter Katoen Datenstrukturen und Algorithmen 39/54 Lineare Suche Analyse Elementare Operation Vergleich einer ganzen Zahl K mit Element E[index]. Menge aller Eingaben D n ist die Menge aller Permutationen von n ganzen Zahlen, die ursprünglich aus einer Menge N > n ganzer Zahlen ausgewählt wurden. Zeitkomplexität W (n) = n, da n Vergleiche notwendig sind, falls K nicht in E vorkommt (oder wenn K == E[n]). B(n) = 1, da ein Vergleich ausreicht, wenn K gleich E[1] ist. A(n) 1 2n?, da im Schnitt K mit etwa der Hälfte der Elemente im Array E verglichen werden muss? Nein.
62 Average, Best und Worst Case Laufzeitanalyse Joost-Pieter Katoen Datenstrukturen und Algorithmen 40/54 Lineare Suche Average-Case-Analyse (I) Zwei Szenarien 1. K kommt nicht in E vor. 2. K kommt in E vor.
63 Average, Best und Worst Case Laufzeitanalyse Joost-Pieter Katoen Datenstrukturen und Algorithmen 40/54 Lineare Suche Average-Case-Analyse (I) Zwei Szenarien 1. K kommt nicht in E vor. 2. K kommt in E vor. Zwei Definitionen 1. Sei A K E (n) die Average-Case-Laufzeit für den Fall "K nicht in E". 2. Sei A K E (n) die Average-Case-Laufzeit für den Fall "K in E".
64 Average, Best und Worst Case Laufzeitanalyse Joost-Pieter Katoen Datenstrukturen und Algorithmen 40/54 Lineare Suche Average-Case-Analyse (I) Zwei Szenarien 1. K kommt nicht in E vor. 2. K kommt in E vor. Zwei Definitionen 1. Sei A K E (n) die Average-Case-Laufzeit für den Fall "K nicht in E". 2. Sei A K E (n) die Average-Case-Laufzeit für den Fall "K in E". A(n) = Pr{K in E} A K E (n) + Pr{K nicht in E} A K E (n)
65 Average, Best und Worst Case Laufzeitanalyse Joost-Pieter Katoen Datenstrukturen und Algorithmen 41/54 Der Fall "K in E" Nehme an, dass alle Elemente in E unterschiedlich sind.
66 Average, Best und Worst Case Laufzeitanalyse Joost-Pieter Katoen Datenstrukturen und Algorithmen 41/54 Der Fall "K in E" Nehme an, dass alle Elemente in E unterschiedlich sind. Damit ist die Wahrscheinlichkeit für K == E[i] gleich 1 n.
67 Average, Best und Worst Case Laufzeitanalyse Joost-Pieter Katoen Datenstrukturen und Algorithmen 41/54 Der Fall "K in E" Nehme an, dass alle Elemente in E unterschiedlich sind. Damit ist die Wahrscheinlichkeit für K == E[i] gleich 1 n. Die Anzahl benötigter Vergleiche im Fall K == E[i] ist i+1.
68 Average, Best und Worst Case Laufzeitanalyse Joost-Pieter Katoen Datenstrukturen und Algorithmen 41/54 Der Fall "K in E" Nehme an, dass alle Elemente in E unterschiedlich sind. Damit ist die Wahrscheinlichkeit für K == E[i] gleich 1 n. Die Anzahl benötigter Vergleiche im Fall K == E[i] ist i+1. Damit ergibt sich: A K E (n) = n 1 Pr{K == E[i] K in E} t(k == E[i]) i=0
69 Average, Best und Worst Case Laufzeitanalyse Joost-Pieter Katoen Datenstrukturen und Algorithmen 41/54 Der Fall "K in E" Nehme an, dass alle Elemente in E unterschiedlich sind. Damit ist die Wahrscheinlichkeit für K == E[i] gleich 1 n. Die Anzahl benötigter Vergleiche im Fall K == E[i] ist i+1. Damit ergibt sich: A K E (n) = = n 1 Pr{K == E[i] K in E} t(k == E[i]) i=0 n 1 i=0 ( 1 n ) (i + 1)
70 Average, Best und Worst Case Laufzeitanalyse Joost-Pieter Katoen Datenstrukturen und Algorithmen 41/54 Der Fall "K in E" Nehme an, dass alle Elemente in E unterschiedlich sind. Damit ist die Wahrscheinlichkeit für K == E[i] gleich 1 n. Die Anzahl benötigter Vergleiche im Fall K == E[i] ist i+1. Damit ergibt sich: A K E (n) = = = n 1 Pr{K == E[i] K in E} t(k == E[i]) i=0 n 1 i=0 ( 1 n ) ( 1 n ) (i + 1) n 1 i=0 (i + 1)
71 Average, Best und Worst Case Laufzeitanalyse Joost-Pieter Katoen Datenstrukturen und Algorithmen 41/54 Der Fall "K in E" Nehme an, dass alle Elemente in E unterschiedlich sind. Damit ist die Wahrscheinlichkeit für K == E[i] gleich 1 n. Die Anzahl benötigter Vergleiche im Fall K == E[i] ist i+1. Damit ergibt sich: A K E (n) = = = = n 1 Pr{K == E[i] K in E} t(k == E[i]) i=0 n 1 ( 1 n ) (i + 1) i=0 ( ) 1 n 1 n ( ) i=0 1 n n(n+1) 2 (i + 1)
72 Average, Best und Worst Case Laufzeitanalyse Joost-Pieter Katoen Datenstrukturen und Algorithmen 41/54 Der Fall "K in E" Nehme an, dass alle Elemente in E unterschiedlich sind. Damit ist die Wahrscheinlichkeit für K == E[i] gleich 1 n. Die Anzahl benötigter Vergleiche im Fall K == E[i] ist i+1. Damit ergibt sich: A K E (n) = = = = n 1 Pr{K == E[i] K in E} t(k == E[i]) i=0 n 1 ( 1 n ) (i + 1) i=0 ( ) 1 n 1 n ( ) i=0 1 n n(n+1) 2 = n+1 2. (i + 1)
73 Average, Best und Worst Case Laufzeitanalyse Joost-Pieter Katoen Datenstrukturen und Algorithmen 42/54 Herleitung A(n) = Pr{K in E} A K E (n) + Pr{K nicht in E} A K E (n)
74 Average, Best und Worst Case Laufzeitanalyse Joost-Pieter Katoen Datenstrukturen und Algorithmen 42/54 Herleitung A(n) = Pr{K in E} A K E (n) + Pr{K nicht in E} A K E (n) A K E (n) = n+1 2 = Pr{K in E} n Pr{K nicht in E} A K E (n)
75 Average, Best und Worst Case Laufzeitanalyse Joost-Pieter Katoen Datenstrukturen und Algorithmen 42/54 Herleitung A(n) = Pr{K in E} A K E (n) + Pr{K nicht in E} A K E (n) A K E (n) = n+1 2 = Pr{K in E} n Pr{K nicht in E} A K E (n) Pr{nicht B} = 1 Pr{B} = Pr{K in E} n (1 Pr{K in E}) A K E (n)
76 Average, Best und Worst Case Laufzeitanalyse Joost-Pieter Katoen Datenstrukturen und Algorithmen 42/54 Herleitung A(n) = Pr{K in E} A K E (n) + Pr{K nicht in E} A K E (n) A K E (n) = n+1 2 = Pr{K in E} n Pr{K nicht in E} A K E (n) Pr{nicht B} = 1 Pr{B} = Pr{K in E} n (1 Pr{K in E}) A K E (n) A K E (n) = n = Pr{K in E} n+1 + (1 Pr{K in E}) n 2
77 Average, Best und Worst Case Laufzeitanalyse Joost-Pieter Katoen Datenstrukturen und Algorithmen 42/54 Herleitung A(n) = Pr{K in E} A K E (n) + Pr{K nicht in E} A K E (n) A K E (n) = n+1 2 = Pr{K in E} n Pr{K nicht in E} A K E (n) Pr{nicht B} = 1 Pr{B} = Pr{K in E} n (1 Pr{K in E}) A K E (n) A K E (n) = n = Pr{K in E} n+1 + (1 Pr{K in E}) n 2 = n (1 1 ) 2 Pr{K in E} + 1 Pr{K in E} 2
78 Average, Best und Worst Case Laufzeitanalyse Joost-Pieter Katoen Datenstrukturen und Algorithmen 43/54 Lineare Suche Average-Case-Analyse Endergebnis Die Average-Case-Zeitkomplexität der linearen Suche ist: A(n) = n (1 1 ) 2 Pr{K in E} + 1 Pr{K in E} 2
79 Average, Best und Worst Case Laufzeitanalyse Joost-Pieter Katoen Datenstrukturen und Algorithmen 43/54 Lineare Suche Average-Case-Analyse Endergebnis Die Average-Case-Zeitkomplexität der linearen Suche ist: A(n) = n (1 1 ) 2 Pr{K in E} + 1 Pr{K in E} 2 Beispiel Wenn Pr{K in E} = 1, dann A(n) = n+1 2, d. h. etwa 50% von E ist überprüft.
80 Average, Best und Worst Case Laufzeitanalyse Joost-Pieter Katoen Datenstrukturen und Algorithmen 43/54 Lineare Suche Average-Case-Analyse Endergebnis Die Average-Case-Zeitkomplexität der linearen Suche ist: A(n) = n (1 1 ) 2 Pr{K in E} + 1 Pr{K in E} 2 Beispiel Wenn Pr{K in E} = 1, dann A(n) = n+1 2, d. h. etwa 50% von E ist überprüft. = 0, dann A(n) = n = W (n), d. h. E wird komplett überprüft.
81 Average, Best und Worst Case Laufzeitanalyse Joost-Pieter Katoen Datenstrukturen und Algorithmen 43/54 Lineare Suche Average-Case-Analyse Endergebnis Die Average-Case-Zeitkomplexität der linearen Suche ist: A(n) = n (1 1 ) 2 Pr{K in E} + 1 Pr{K in E} 2 Beispiel Wenn Pr{K in E} = 1, dann A(n) = n+1 2, d. h. etwa 50% von E ist überprüft. = 0, dann A(n) = n = W (n), d. h. E wird komplett überprüft. = 1 3 n 2, dann A(n) = , d. h. etwa 75% von E wird überprüft.
82 Organisatorisches Joost-Pieter Katoen Datenstrukturen und Algorithmen 44/54 Übersicht 1 Was sind Algorithmen? Algorithmen und Datenstrukturen Effizienz von Algorithmen 2 Average, Best und Worst Case Laufzeitanalyse Lineare Suche Average-Case Analyse von linearer Suche 3 Organisatorisches Übersicht Übungsbetrieb Prüfung
83 Organisatorisches Joost-Pieter Katoen Datenstrukturen und Algorithmen 45/54 Übersicht (Teil I) 1. Algorithmische Komplexität 2. Asymptotische Effizienz 3. Elementare Datenstrukturen 4. Suchen 5. Rekursionsgleichungen 6. Sortieren: in-situ, Mergesort, Heapsort, Quicksort
84 Organisatorisches Joost-Pieter Katoen Datenstrukturen und Algorithmen 46/54 Übersicht (Teil II) 1. Binäre Suchbäume 2. Rot-Schwarz-Bäume 3. Hashing 4. Elementare Graphenalgorithmen 5. Minimale Spannbäume 6. Kürzeste-Pfade-Algorithmen 7. Maximale Flüsse 8. Dynamische Programmierung 9. Algorithmische Geometrie
85 Organisatorisches Joost-Pieter Katoen Datenstrukturen und Algorithmen 47/54 Literatur Die Vorlesung orientiert sich im Wesentlichen an diesem Buch: Thomas H. Cormen, Charles E. Leiserson, Ronald Rivest, Clifford Stein: Algorithmen - Eine Einführung R. Oldenbourg Verlag, 2. oder 3. Auflage.
86 Organisatorisches Joost-Pieter Katoen Datenstrukturen und Algorithmen 48/54 Wichtige Termine Vorlesungstermine Vorlesung: Do. 10:15 11:45, Aula (Hauptgebäude) Fr. 10:15 11:45, Großer Hörsaal (Audimax) Keine Vorlesung am , , , , Letzte Vorlesung am 16. Juli 2015
87 Organisatorisches Joost-Pieter Katoen Datenstrukturen und Algorithmen 48/54 Wichtige Termine Vorlesungstermine Vorlesung: Do. 10:15 11:45, Aula (Hauptgebäude) Fr. 10:15 11:45, Großer Hörsaal (Audimax) Keine Vorlesung am , , , , Letzte Vorlesung am 16. Juli 2015 Frontalübung: Mi. 12:15 13:45, Aula (Hauptgebäude) Am und sind Vorlesung ( bzw ) und Frontalübung getauscht Erste Frontalübung: Do. 23. April
88 Organisatorisches Joost-Pieter Katoen Datenstrukturen und Algorithmen 49/54 Übungsbetrieb Übungsgruppen 16 Übungsgruppen: verschiedene Uhrzeiten Mo. Fr. Spezialübung für Lehramtsstudenten und CES Studierende 2 3 Übungsgruppen für Erstsemester Koordinatoren: Christian Dehnert, Friedrich Gretz, Benjamin Kaminski und Thomas Ströder.
89 Organisatorisches Joost-Pieter Katoen Datenstrukturen und Algorithmen 49/54 Übungsbetrieb Übungsgruppen 16 Übungsgruppen: verschiedene Uhrzeiten Mo. Fr. Spezialübung für Lehramtsstudenten und CES Studierende 2 3 Übungsgruppen für Erstsemester Koordinatoren: Christian Dehnert, Friedrich Gretz, Benjamin Kaminski und Thomas Ströder. Anmeldung für die Übungsgruppen Anmeldung zum Übungsbetrieb über Web-link bis Mittwoch, 15. April 2015, 12:15 Uhr (Aachener Zeit).
90 Organisatorisches Joost-Pieter Katoen Datenstrukturen und Algorithmen 50/54 Übungsbetrieb Wichtige Termine 0. Übungszettel: korrekte Anmeldung für den Übungsbetrieb Abgabe 0. Übungszettel: 15. April Übungszettel: 15. April 2015 Abgabe 1. Übungszettel: Mittwoch, 29. April 2015 Abgabe Übungszettel: Mittwochs (i.d.r. zwei Wochen später) vor 12:15 Uhr im Sammelkasten 2.Übungszettel: 22. April 2015 Abgabe 2. Übungszettel: Mittwoch, 6. Mai 2015 etc. Frontalübung: Mittwoch, 12:15 13:45 ab 23. April 2015 (Do.), erster Termin getauscht mit Vorlesung Übungsgruppen: Montag Freitag, (fast) jederzeit ab 20. April Präsenzübung: Mittwoch, 03. Juni 2015 (abends)
91 Organisatorisches Joost-Pieter Katoen Datenstrukturen und Algorithmen 51/54 Prüfung Die Prüfung ist eine schriftliche Klausur von 120 Minuten. Zulassungskriterium Klausur 1. Mindestens 50% aller in den Übungen erreichbaren Punkte bis PÜ 2. Mindestens 50% aller in den Übungen erreichbaren Punkte ab PÜ 3. Mindestens 50% der in der Präsenzübung (PÜ) erreichbaren Punkte. CES-Studenten brauchen kein Zulassungskriterium zu erfüllen. Bonusregelung Bei 75% in allen drei Punkten: eine Notenstufe höher (außer bei 1.0 und 5.0).
92 Organisatorisches Joost-Pieter Katoen Datenstrukturen und Algorithmen 52/54 Wichtige Termine Wichtige Termine Präsenzübung: Mittwoch, 3. Juni 2015 (abends) Klausur: Dienstag, 4. August 2015 (morgens) Wiederholungsklausur: Montag, 14. September 2015 (nachmittags)
93 Organisatorisches Joost-Pieter Katoen Datenstrukturen und Algorithmen 52/54 Wichtige Termine Wichtige Termine Präsenzübung: Mittwoch, 3. Juni 2015 (abends) Klausur: Dienstag, 4. August 2015 (morgens) Wiederholungsklausur: Montag, 14. September 2015 (nachmittags) Anmeldung zur Prüfung über CAMPUS-Office bis , 23:59 Uhr.
94 Organisatorisches Joost-Pieter Katoen Datenstrukturen und Algorithmen 53/54 Softwarewettbewerb Idee Praktische Anwendung der Vorlesungsinhalte Konkret: Entwurf und Implementierung einer Datenstruktur Dauer Start: (voraussichtlich) 1. Juni 2015 Ende: 5. Juli 2015 Warum? Klausurvorbereitung Spaß, (endloser) Ruhm kleine Sachpreise
95 Organisatorisches Joost-Pieter Katoen Datenstrukturen und Algorithmen 54/54 Sonstiges Mehr Information Webseite: Nächste Vorlesung Freitag 10. April,10:15.
Ü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
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
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)
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
Vorlesung Berechenbarkeit und Komplexität. Motivation, Übersicht und Organisatorisches
Berechenbarkeit und Komplexität: Motivation, Übersicht und Organisatorisches Prof. Dr. Berthold Vöcking Lehrstuhl Informatik 1 Algorithmen und Komplexität RWTH Aachen Berechenbarkeit die absoluten Grenzen
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:
Datenstrukturen und Algorithmen
Joost-Pieter Katoen Datenstrukturen und Algorithmen 1/32 Datenstrukturen und Algorithmen Vorlesung 7: Sortieren (K2) Joost-Pieter Katoen Lehrstuhl für Informatik 2 Software Modeling and Verification Group
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:
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
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
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 2009 14. April 2009 Petra Mutzel Kurzvorstellung
Algorithmen und Berechnungskomplexität I
Institut für Informatik I Wintersemester 2010/11 Organisatorisches Vorlesung Montags 11:15-12:45 Uhr (AVZ III / HS 1) Mittwochs 11:15-12:45 Uhr (AVZ III / HS 1) Dozent Professor für theoretische Informatik
Abgabe: (vor der Vorlesung) Aufgabe 2.1 (P) O-Notation Beweisen Sie die folgenden Aussagen für positive Funktionen f und g:
TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK Lehrstuhl für Sprachen und Beschreibungsstrukturen SS 2009 Grundlagen: Algorithmen und Datenstrukturen Übungsblatt 2 Prof. Dr. Helmut Seidl, S. Pott,
Übersicht. Datenstrukturen und Algorithmen. Übersicht. Divide-and-Conquer. Vorlesung 9: Quicksort (K7)
Datenstrukturen und Algorithmen Vorlesung 9: (K7) Joost-Pieter Katoen Lehrstuhl für Informatik 2 Software Modeling and Verification Group http://www-i2.rwth-aachen.de/i2/dsal0/ Algorithmus 8. Mai 200 Joost-Pieter
Algorithmen - Eine Einführung
Algorithmen - Eine Einführung von Prof. Dr. Thomas H. Cormen Prof. Dr. Charles E. Leiserson Prof. Dr. Ronald Rivest Prof. Dr. Clifford Stein 2., korrigierte Auflage Oldenbourg Verlag München Wien Inhaltsverzeichnis
Tutoraufgabe 1 (Vollständige Induktion): Tutoraufgabe 2 (Rotationen): Datenstrukturen und Algorithmen SS15 Übungsblatt 5 (Abgabe 3.6.
Prof. aa Dr. Ir. Joost-Pieter Katoen Allgemeine Hinweise: Christian Dehnert, Friedrich Gretz, Benjamin Kaminski, Thomas Ströder Die Hausaufgaben sollen in Gruppen von je - Studierenden aus der gleichen
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
Algorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Wintersemester 2013/14 1. Vorlesung Kapitel 1: Sortieren Prof. Dr. Alexander Wolff Lehrstuhl für Informatik I Das Problem Eingabe Gegeben: eine Folge A = a 1, a 2,..., a
1. Einführung. Was ist ein Algorithmus (eine Datenstruktur)? Welche Probleme kann man damit lösen? Warum betrachten wir (effiziente) Algorithmen?
1. Einführung Was ist ein Algorithmus (eine Datenstruktur)? Welche Probleme kann man damit lösen? Warum betrachten wir (effiziente) Algorithmen? Wie beschreiben wir Algorithmen? Nach welchen Kriterien
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
2 Sortieren. Beispiel: Es seien n = 8 und a = i : a i : ϕ(i) : a ϕ(i) :
2 Sortieren Das Sortieren einer Datenfolge ist eines der am leichtesten zu verstehenden und am häufigsten auftretenden algorithmischen Probleme. In seiner einfachsten Form besteht das Problem darin, eine
Datenstrukturen & Algorithmen
Datenstrukturen & Algorithmen Matthias Zwicker Universität Bern Frühling 2010 Übersicht Dynamische Programmierung Einführung Ablaufkoordination von Montagebändern Längste gemeinsame Teilsequenz Optimale
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
Inhaltsverzeichnis. Einführende Bemerkungen 11. Das Fach Informatik 11 Zielsetzung der Vorlesung Grundbegriffe
Inhaltsverzeichnis Einführende Bemerkungen 11 Das Fach Informatik 11 Zielsetzung der Vorlesung 12 1. Grundbegriffe 1 3 1.1 1.2 1.3 1.4 1.5 1.6 1.7 Information und Nachricht 1.1.1 Information 1.1.2 Nachricht
Technische Universität Wien Institut für Computergraphik und Algorithmen Arbeitsbereich für Algorithmen und Datenstrukturen
Technische Universität Wien Institut für Computergraphik und Algorithmen Arbeitsbereich für Algorithmen und Datenstrukturen 186.172 Algorithmen und Datenstrukturen 1 VL 4.0 Übungsblatt 1 für die Übung
INSTITUT FÜR THEORETISCHE INFORMATIK, PROF. SANDERS
Julian Arz, Timo Bingmann, Sebastian Schlag INSTITUT FÜR THEORETISCHE INFORMATIK, PROF. SANDERS 1 KIT Julian Universität Arz, des Timo LandesBingmann, Baden-Württemberg Sebastian und Schlag nationales
Klausur Algorithmen und Datenstrukturen
Technische Universität Braunschweig Sommersemester 2013 IBR - Abteilung Algorithmik Prof. Dr. Sándor Fekete Dr. Christiane Schmidt Stephan Friedrichs Klausur Algorithmen und Datenstrukturen 22.08.2013
Asymptotische Laufzeitanalyse: Beispiel
Asyptotische Laufzeitanalyse: n = length( A ) A[j] = x GZ Algorithen u. Datenstrukturen 1 31.10.2013 Asyptotische Laufzeitanalyse: n = length( A ) A[j] = x GZ Algorithen u. Datenstrukturen 2 31.10.2013
Klausur Datenstrukturen und Algorithmen SoSe 2012
Prof. aa Dr. Ir. Joost-Pieter Katoen Christian Dehnert, Jonathan Heinen, Thomas Ströder, Sabrina von Styp Klausur Datenstrukturen und Algorithmen SoSe 2012 Vorname: Nachname: Studiengang (bitte genau einen
Datenstrukturen. Sommersemester Kapitel 1: Motivation / Grundlagen. Steffen Lange
Datenstrukturen Sommersemester 2010 Steffen Lange 1/1, Folie 1 2010 Prof. Steffen Lange - HDa/FbI - Datenstrukturen Organisatorisches Vorlesung wöchentlich; zwei Blöcke Folien im Netz (/* bitte zur Vorlesung
Alle bislang betrachteten Sortieralgorithmen hatten (worst-case) Laufzeit Ω(nlog(n)).
8. Untere Schranken für Sortieren Alle bislang betrachteten Sortieralgorithmen hatten (worst-case) Laufzeit Ω(nlog(n)). Werden nun gemeinsame Eigenschaften dieser Algorithmen untersuchen. Fassen gemeinsame
Übersicht. Datenstrukturen und Algorithmen Vorlesung 5: Rekursionsgleichungen (K4) Übersicht. Binäre Suche. Joost-Pieter Katoen. 20.
Übersicht Datenstrukturen und Algorithmen Vorlesung 5: (K4) Joost-Pieter Katoen Lehrstuhl für Informatik 2 Software Modeling and Verification Group http://www-i2.informatik.rwth-aachen.de/i2/dsal12/ 20.
Entscheidungsbäume. Definition Entscheidungsbaum. Frage: Gibt es einen Sortieralgorithmus mit o(n log n) Vergleichen?
Entscheidungsbäume Frage: Gibt es einen Sortieralgorithmus mit o(n log n) Vergleichen? Definition Entscheidungsbaum Sei T ein Binärbaum und A = {a 1,..., a n } eine zu sortierenden Menge. T ist ein Entscheidungsbaum
Amortisierte Laufzeitanalyse
Paris-Lodron Universität Salzburg 24 Januar, 2014 Inhaltsverzeichnis 1 Einführung Definition Beispiel:Stapeloperationen Beispiel: Binärzähler (1/2) Beispiel: Binärzähler (2/2) 2 Analyse der Stack mittels
Informatikgrundlagen (WS 2015/2016)
Informatikgrundlagen (WS 2015/2016) Klaus Berberich ([email protected]) Wolfgang Braun ([email protected]) 0. Organisatorisches Dozenten Klaus Berberich ([email protected]) Sprechstunde
Datenstrukturen und SS Robert Elsässer
Datenstrukturen und Algorithmen Robert Elsässer Organisatorisches Vorlesung: Mo 11:15-12:45 Audimax Fr 11:15-12:45 Raum G Zentralübung: Do 13:00 13:45 Raum G Beginn: nächste Woche Übungen: Beginn: nächste
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
Algorithmen und Datenstrukturen Laufzeitabschätzung
Algorithmen und Datenstrukturen Laufzeitabschätzung Matthias Teschner Graphische Datenverarbeitung Institut für Informatik Universität Freiburg SS 12 Lernziele der Vorlesung Algorithmen Sortieren, Suchen,
Abschnitt: Algorithmendesign und Laufzeitanalyse
Abschnitt: Algorithmendesign und Laufzeitanalyse Definition Divide-and-Conquer Paradigma Divide-and-Conquer Algorithmen verwenden die Strategien 1 Divide: Teile das Problem rekursiv in Subproblem gleicher
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
Einführung in die Informatik 2
Einführung in die Informatik 2 Suchen in Datenmengen Sven Kosub AG Algorithmik/Theorie komplexer Systeme Universität Konstanz E 202 [email protected] Sprechstunde: Freitag, 12:30-14:00 Uhr, o.n.v.
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
Algorithmen und Datenstrukturen. PD Ma&hias Thimm
Algorithmen und Datenstrukturen PD Ma&hias Thimm Modulnummer, Addressaten und Voraussetzungen Modulnummer: 04IN1014 Adressaten: Bachelor Informa:k, 2. Jahr Bachelor Computervisualis:k, 2. Jahr Bachelor
Algorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2014 / 2015 Vorlesung 3, Donnerstag 6.
Algorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2014 / 2015 Vorlesung 3, Donnerstag 6. November 2014 (O-Notation, Theta, Omega) Junior-Prof. Dr. Olaf Ronneberger
2. Übungsblatt zu Algorithmen II im WS 2016/2017
Karlsruher Institut für Technologie Institut für Theoretische Informatik Prof. Dr. Peter Sanders Dr. Christian Schulz, Dr. Simon Gog Michael Axtmann. Übungsblatt zu Algorithmen II im WS 016/017 Aufgabe
Untersuchen Sie, inwiefern sich die folgenden Funktionen für die Verwendung als Hashfunktion eignen. Begründen Sie Ihre Antwort.
Prof. aa Dr. Ir. Joost-Pieter Katoen Christian Dehnert, Friedrich Gretz, Benjamin Kaminski, Thomas Ströder Tutoraufgabe 1 (Güte von Hashfunktionen): Untersuchen Sie, inwiefern sich die folgenden Funktionen
Logik und diskrete Strukturen
Prof. Dr. Institut für Informatik Abteilung I Wintersemester 2012/13 Organisatorisches Vorlesung Dienstag und Donnerstag 10:15 11:45 Uhr (HS 1) und 12:30 14:00 Uhr (HS 2) Vorlesung am Vormittag = Vorlesung
2 i. i=0. und beweisen Sie mittels eines geeigneten Verfahrens die Korrektheit der geschlossenen Form.
für Informatik Prof. aa Dr. Ir. Joost-Pieter Katoen Christian Dehnert, Friedrich Gretz, Benjamin Kaminski, Thomas Ströder Tutoraufgabe (Vollständige Induktion): Finden Sie eine geschlossene Form für die
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
Kombinatorik. Additions- und Multiplikationsgesetz
Kombinatorik Die Kombinatorik beschäftigt sich mit der Berechnung der Anzahl Möglichkeiten, eine Anzahl von Objekten aus einer Grundmenge auszuwählen. Z.B. beim Schweizer Zahlenlotto 6 aus 45. Dabei wird
Bäume, Suchbäume und Hash-Tabellen
Im folgenden Fokus auf Datenstrukturen, welche den assoziativen Zugriff (über einen bestimmten Wert als Suchkriterium) optimieren Bäume: Abbildung bzw. Vorberechnung von Entscheidungen während der Suche
Einführung in die Informatik
Einführung in die Informatik Jochen Hoenicke Software Engineering Albert-Ludwigs-University Freiburg Sommersemester 2014 Jochen Hoenicke (Software Engineering) Einführung in die Informatik Sommersemester
Grundlagen der Informatik. Prof. Dr. Stefan Enderle NTA Isny
Grundlagen der Informatik Prof. Dr. Stefan Enderle NTA Isny 2 Datenstrukturen 2.1 Einführung Syntax: Definition einer formalen Grammatik, um Regeln einer formalen Sprache (Programmiersprache) festzulegen.
Einführung Elementare Datenstrukturen. Der Konstruktor muß den Listenkopf head erzeugen. Der Vorgänger und Nachfolger von head ist head selbst.
Einführung Elementare Datenstrukturen (Folie 38, Seite 23 im Skript) Der Konstruktor muß den Listenkopf head erzeugen. Der Vorgänger und Nachfolger von head ist head selbst. Einführung Elementare Datenstrukturen
JAVA - Suchen - Sortieren
Übungen Informatik I JAVA - Suchen - Sortieren http://www.fbi-lkt.fh-karlsruhe.de/lab/info01/tutorial Übungen Informatik 1 Folie 1 Inhalt Suchen/Sortieren binary search mergesort bubblesort Übungen Informatik
Student: Alexander Carls Matrikelnummer: Aufgabe: Beschreibung des euklidischen Algorithmus Datum:
Berufsakademie Stuttgart / Außenstelle Horb Studienbereich Technik Studiengang Informationstechnik Kurs IT2006, 2.Semester Dozent: Olaf Herden Student: Alexander Carls Matrikelnummer: 166270 Aufgabe: Beschreibung
Kapitel 6. Komplexität von Algorithmen. Xiaoyi Jiang Informatik I Grundlagen der Programmierung
Kapitel 6 Komplexität von Algorithmen 1 6.1 Beurteilung von Algorithmen I.d.R. existieren viele Algorithmen, um dieselbe Funktion zu realisieren. Welche Algorithmen sind die besseren? Betrachtung nicht-funktionaler
Programmiertechnik II
2007 Martin v. Löwis Priority Queues and Heapsort 2007 Martin v. Löwis 2 Priority Queue Abstrakter Datentyp Inhalt: Elemente mit Priorität Operationen: Einfügen: Angabe des Elements und seiner Priorität
Diskrete Strukturen Kapitel 1: Einleitung
WS 2015/16 Diskrete Strukturen Kapitel 1: Einleitung Hans-Joachim Bungartz Lehrstuhl für wissenschaftliches Rechnen Fakultät für Informatik Technische Universität München http://www5.in.tum.de/wiki/index.php/diskrete_strukturen_-_winter_15
DATENSTRUKTUREN UND ALGORITHMEN
DATENSTRUKTUREN UND ALGORITHMEN 2 Ist die Datenstruktur so wichtig??? Wahl der Datenstruktur wichtiger Schritt beim Entwurf und der Implementierung von Algorithmen Dünn besetzte Graphen und Matrizen bilden
Was bisher geschah ADT Menge mit Operationen: Suche nach einem Element Einfügen eines Elementes Löschen eines Elementes Realisierung durch
Was bisher geschah ADT Menge mit Operationen: Suche nach einem Element Einfügen eines Elementes Löschen eines Elementes Realisierung durch verschiedene Datenstrukturen: lineare Datenstrukturen: Array,
Wiederholung ADT Menge Ziel: Verwaltung (Finden, Einfügen, Entfernen) einer Menge von Elementen
Was bisher geschah abstrakter Datentyp : Signatur Σ und Axiome Φ z.b. ADT Menge zur Verwaltung (Finden, Einfügen, Entfernen) mehrerer Elemente desselben Typs Spezifikation einer Schnittstelle Konkreter
Abschnitt 18: Effizientes Suchen in Mengen
Abschnitt 18: Effizientes Suchen in Mengen 18. Effizientes Suchen in Mengen 18.1 Vollständig ausgeglichene binäre Suchbäume 18.2 AVL-Bäume 18.3 Operationen auf AVL-Bäumen 18.4 Zusammenfassung 18 Effizientes
Uebersicht. Webpage & Ilias. Administratives. Lehrbuch. Vorkenntnisse. Datenstrukturen & Algorithmen
Datenstrukturen & Algorithmen Uebersicht Administratives Einleitung Ein einführendes Beispiel Matthias Zwicker Universität Bern Frühling 2010 2 Administratives Dozent Prof. Zwicker, [email protected]
Ü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
Einstieg in die Informatik mit Java
1 / 32 Einstieg in die Informatik mit Java Effizienz Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 32 1 Überblick: was ist Effizienz? 2 Landau-Symbole 3 Eier im Korb 4
Übungsblatt 1. f(n) = f(n) = O(g(n)) g(n) = O(f(n)) Zeigen oder widerlegen Sie: 3 n = Θ(2 n ) Aufgabe 1.2 Gegeben sei die folgende Funktion:
Übungsblatt 1 Aufgabe 1.1 Beweisen oder widerlegen Sie, dass für die im Folgenden definierte Funktion f(n) die Beziehung f(n) = Θ(n 4 ) gilt. Beachten Sie, dass zu einem vollständigen Beweis gegebenenfalls
Institut für Programmierung und Reaktive Systeme 27. Mai Programmieren II. 12. Übungsblatt
Technische Universität Braunschweig Dr. Werner Struckmann Institut für Programmierung und Reaktive Systeme 27. Mai 206 Programmieren II 2. Übungsblatt Hinweis: Auf diesem und den folgenden Übungsblättern
Algorithmen und Datenstrukturen (für ET/IT)
Algorithmen und Datenstrukturen (für ET/IT) Wintersemester 2012/13 Dr. Tobias Lasser Computer Aided Medical Procedures Technische Universität München Programm heute 1 Einführung 2 Mathematische Grundlagen
Algorithmen und Datenstrukturen Kapitel 10
Algorithmen und Datenstrukturen Kapitel 10 Flüsse Frank Heitmann [email protected] 6. Januar 2016 Frank Heitmann [email protected] 1/8 Flüsse Graphen Grundlagen Definition
Datenstrukturen & Algorithmen
Eidgenössische Technische Hochschule Zürich Ecole polytechnique fédérale de Zurich Politecnico federale di Zurigo Federal Institute of Technology at Zurich Institut für Theoretische Informatik Peter Widmayer
Algorithmen & Datenstrukturen 1. Klausur
Algorithmen & Datenstrukturen 1. Klausur 7. Juli 2010 Name Matrikelnummer Aufgabe mögliche Punkte erreichte Punkte 1 35 2 30 3 30 4 15 5 40 6 30 Gesamt 180 1 Seite 2 von 14 Aufgabe 1) Programm Analyse
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
ADS: Algorithmen und Datenstrukturen 2
ADS: Algorithmen und Datenstrukturen 2 Teil 5 Prof. Peter F. Stadler & Dr. Christian Höner zu Siederdissen Bioinformatik/IZBI Institut für Informatik & Interdisziplinäres Zentrum für Bioinformatik Universität
Algorithmen und Datenstrukturen 1
Algorithmen und Datenstrukturen 1 4. Vorlesung Peter F. Stadler Universität Leipzig Institut für Informatik [email protected] 4. Sortierverfahren Elementare Sortierverfahren - Sortieren durch
Algorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Wintersemester 202/3 24. Vorlesung Amortisierte Analyse Prof. Dr. Alexander Wolff Lehrstuhl für Informatik I Hash-Tabellen Frage: Ziel: Problem: Lösung: Wie groß macht man
Sortieralgorithmen. Inhalt: InsertionSort BubbleSort QuickSort. Marco Block
Inhalt: InsertionSort BubbleSort QuickSort Block M.: "Java-Intensivkurs - In 14 Tagen lernen Projekte erfolgreich zu realisieren", Springer-Verlag 2007 InsertionSort I Das Problem unsortierte Daten in
Programmieren I. Kapitel 7. Sortieren und Suchen
Programmieren I Kapitel 7. Sortieren und Suchen Kapitel 7: Sortieren und Suchen Ziel: Varianten der häufigsten Anwendung kennenlernen Ordnung Suchen lineares Suchen Binärsuche oder Bisektionssuche Sortieren
Einführung in die Informatik 1
Einführung in die Informatik 1 Algorithmen und algorithmische Sprachkonzepte Sven Kosub AG Algorithmik/Theorie komplexer Systeme Universität Konstanz E 202 [email protected] Sprechstunde: Freitag,
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)
1. Motivation / Grundlagen 2. Sortierverfahren 3. Elementare Datenstrukturen / Anwendungen 4. Bäume / Graphen 5. Hashing 6. Algorithmische Geometrie
Gliederung 1. Motivation / Grundlagen 2. Sortierverfahren 3. Elementare Datenstrukturen / Anwendungen 4. äume / Graphen. Hashing 6. Algorithmische Geometrie 4/6, Folie 1 2014 Prof. Steffen Lange - HDa/FbI
Kapitel 2: Analyse der Laufzeit von Algorithmen Gliederung
Gliederung 1. Motivation / Einordnung / Grundlagen 2. Analyse der Laufzeit von Algorithmen 3. Untere Schranken für algorithmische Probleme 4. Sortier- und Selektionsverfahren 5. Paradigmen des Algorithmenentwurfs
Lernziele Ablauf Übungsaufgaben Formalitäten. Programmierpraktika. Einführung in das Programmieren und Weiterführendes Programmieren
Programmierpraktika Einführung in das Programmieren und Weiterführendes Programmieren Prof. H. G. Matthies, Dr. Elmar Zander Präsentation: Dr. Th. Grahs 7.4.2016 Programmierpraktika 7.4.2016 1/15 Lernziele
Kapitel 0: Organisatorisches
Einführung in die Praktische Informatik Wintersemester 2009 / 2010 Kapitel 0: Organisatorisches Prof. Dr. Manfred Reichert Andreas Lanz, Rüdiger Pryss Universität Ulm Institut für Datenbanken und Informationssysteme
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
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
Datenstrukturen und Algorithmen
Datenstrukturen und Algorithmen Sommersemester 2013 1 1 O. Einführung 0.1 Organisatorisches 0.2 Überblick 2 0.1 Organisatorisches DSAL Team Veranstaltungen & Termine Kommunikation Materialien Übungsbetrieb
Proseminar Online Algorithmen, Prof. Dr. Rolf Klein
Proseminar Online Algorithmen, Prof. Dr. Rolf Klein Vortrag von Michael Daumen am 13.12.2000 Thema : Minimum Spanning Tree und 2-Approximation der TSP-Tour Inhalt des Vortrags : 1. genaue Vorstellung des
Die Komplexitätsklassen P und NP
Die Komplexitätsklassen P und NP Prof. Dr. Berthold Vöcking Lehrstuhl Informatik 1 Algorithmen und Komplexität RWTH Aachen 3. Dezember 2009 Berthold Vöcking, Informatik 1 () Vorlesung Berechenbarkeit und
Kapitel 4: Minimal spannende Bäume Gliederung der Vorlesung
Kapitel : Minimal spannende Bäume Gliederung der Vorlesung. Fallstudie Bipartite Graphen 2. Grundbegriffe. Elementare Graphalgorithmen und Anwendungen. Minimal spannende Bäume. Kürzeste Wege. Traveling
Algorithmik - Kompaktkurs
Algorithmik - Kompaktkurs Sommersemester 2012 Steffen Lange 0/1, Folie 1 2012 Prof. Steffen Lange - HDa/FbI - Algorithmik Organisatorisches Vorlesung Folien im Netz (/* bitte zur Vorlesung mitbringen */)
1. Einfach verkettete Liste unsortiert 2. Einfach verkettete Liste sortiert 3. Doppelt verkettete Liste sortiert
Inhalt Einführung 1. Arrays 1. Array unsortiert 2. Array sortiert 3. Heap 2. Listen 1. Einfach verkettete Liste unsortiert 2. Einfach verkettete Liste sortiert 3. Doppelt verkettete Liste sortiert 3. Bäume
Kapitel 4: Minimale spannende Bäume Gliederung der Vorlesung
Kapitel : Minimale spannende Bäume Gliederung der Vorlesung. Grundbegriffe 2. Elementare Graphalgorithmen und Anwendungen. Kürzeste Wege. Minimale spannende Bäume. Färbungen und Cliquen. Traveling Salesman
Theoretische Informatik 1
Theoretische Informatik 1 Registermaschine David Kappel Institut für Grundlagen der Informationsverarbeitung TU Graz SS 2012 Übersicht Registermaschinen Algorithmusbegriff konkretisiert formale Beschreibung
Informatik I 1. Kapitel. Einführung in Algorithmen und Datenstrukturen. Einführung in Algorithmen. Einführung in Algorithmen.
Informatik I 1. Kapitel Rainer Schrader Einführung in Algorithmen und Datenstrukturen Zentrum für Angewandte Informatik Köln 16. Juli 008 1 / 1 / 1 Einführung in Algorithmen Einführung in Algorithmen Gliederung
Sortierverfahren für Felder (Listen)
Sortierverfahren für Felder (Listen) Generell geht es um die Sortierung von Daten nach einem bestimmten Sortierschlüssel. Es ist auch möglich, daß verschiedene Daten denselben Sortierschlüssel haben. Es
Ausgewählte Algorithmen: Sortieren von Listen
Kapitel 11: Ausgewählte Algorithmen: Sortieren von Listen Einführung in die Informatik Wintersemester 2007/08 Prof. Bernhard Jung Übersicht Analyse von Algorithmen: Zeitkomplexität Elementare Sortierverfahren
