Algorithmen und Datenstrukturen Kapitel 1 Algorithmen & Algorithmenanalyse
|
|
|
- Dorothea Falk
- vor 8 Jahren
- Abrufe
Transkript
1 Algorithmen und Datenstrukturen Kapitel 1 Algorithmen & Frank Heitmann [email protected] 14. Oktober 2015 Frank Heitmann [email protected] 1/48
2 Der Sprung ins Wasser... Worum geht es bei Algorithmen und Datenstrukturen? Frank Heitmann 2/48
3 Und warum brauch ich das?! Was nützt das? Spaß! Grob abschätzen, ob etwas überhaupt möglich ist. Grob abschätzen, wie teuer etwas wird/werden kann. Lösungsvorschläge und deren Kosten verstehen. Lösungen selbst erarbeiten können! Abstrahieren! Frank Heitmann 3/48
4 Organisatorisches 1 Zur Vorlesung: Immer Mittwochs in Hörsaal A Chemie Vorlesung mit Lecture2Go-Aufzeichnung Pause Wiederholung, Übung, Vertiefung,... Boxen für besonders Wichtiges / für Interessierte Das Buch zur Vorlesung: Cormen et al. Introduction to Algorithms, McGraw-Hill. Oder jedes andere Algorithmen-Buch (+Folien) Frank Heitmann [email protected] 4/48
5 Organisatorisches 2 Zu den Übungsgruppen und Übungszetteln: Beginn diesen Mittwoch. Einige Besonderheiten: Gruppe 01 und 04 am ZBH in Raum 16 Gruppe 03 startet erst um 1240 Uhr (bis 1410) Gruppe 04 startet um 1400 Uhr (bis 1530) Neuen Aufgabenzettel alle zwei Wochen i.a. Mo-Mi Bearbeiten in 2er- oder 3er-Gruppen. Abgabe ca. zwei Wochen später am Montag bis 16 Uhr in die Abgabebox im 1. Stock von Haus C (vor C-201). Besprechung in den Übungen in der Woche. Alle Gruppenmitglieder müssen den eigenen Lösungsvorschlag präsentieren können. 50% der Punkte aller Zettel sind nötig. Frank Heitmann [email protected] 5/48
6 Motivation Los... Frank Heitmann 6/48
7 Motivation Begriff: Datentyp & Datenstruktur Definition Ein Datentyp ist eine Menge von Werten (z.b. N) und Operationen darauf (z.b. +). Definition Bei einer Datenstruktur sind die Daten zusätzlich in bestimmter Weise angeordnet und in bestimmter Weise wird Zugriff und Verwaltung ermöglicht. (Beispiele: Array, Liste, Stack, Graph) Bemerkung Abstrakte Definition/Beschreibung/Darstellung erfolgt mittels Abstrakter Datentypen/Datenstrukturen (ADT). Dabei ist die Signatur die algebraische Spezifikation des Datentyps. Die Algebra wird als Datentyp zur Signatur bezeichnet. Frank Heitmann 7/48
8 Ein Problem... Motivation Folgendes Problem: Gegeben sei eine (lange) Liste mit Namen. Wir wollen herausfinden ob Max Mustermann auf der Liste steht. Wie machen wir das? Wie machen wir das algorithmisch? Und was ist noch mal ein Algorithmus? Frank Heitmann 8/48
9 Begriff: Algorithmus Motivation Definition Ein Algorithmus ist ein endlich und präsize beschriebenes Verfahren, das Eingabewerte in Ausgabewerte umwandelt. Es ist (i.a.) deterministisch und der Ausgang ist determiniert. Die einzelnen Schritte sind zudem elementar/atomar und effektiv ausführbar. Meist wird noch die Termination sowie die Korrektheit des Verfahrens verlangt (beides muss bewiesen werden!). I.A. soll ein Algorithmus ein Problem lösen. Eine Instanz ist dabei eine mögliche Eingabe (bspw. zwei Zahlen, die addiert werden sollen). Bemerkung Wir benutzen nachfolgend übliche Pseudocode-Bausteine und Konventionen. (for, while, Zuweisung, if-then, case,...) Frank Heitmann 9/48
10 ... eine Lösung Motivation Algorithmus 1 Lineare Suche 1: for i = 0 to n do 2: if a[i] == max mustermann then 3: return true 4: end if 5: end for 6: return false Ist diese Lösung gut? Geht das besser? Frank Heitmann [email protected] 10/48
11 und eine andere Lösung Motivation Algorithmus 2 Binäre Suche 1: while first last idx < 0 do 2: m = first + ((last first)/2) 3: if a[m] < p then 4: first = m + 1 5: else if a[m] > p then 6: last = m 1 7: else 8: idx = m 9: end if 10: end while 11: return idx Ist das besser? Welche Voraussetzungen haben wir hier? Frank Heitmann [email protected] 11/48
12 Sortieren Motivation Definition (Das Sortierproblem) Eingabe: Eine Sequenz < a 1, a 2,..., a n > von n Zahlen. Gesucht: Eine Permutation < a 1, a 2,..., a n > der Eingabesequenz mit a 1 a 2... a n. Anmerkung Ob die Reihenfolge zweier Elemente a i, a j (i < j) mit a i = a j beibehalten werden soll oder nicht, ist nicht gesagt. Bleibt sie erhalten, d.h. ist a p = a i, a q = a j und p < q, so nennt man das Verfahren stabil. Ferner heißt ein Sortierverfahren in-place (oder in situ), wenn der zusätzlich benötigte Speicherbedarf unabhängig von der gegebenen Sequenz ist. Frank Heitmann [email protected] 12/48
13 Bedeutung des Sortierens Motivation Daten zu Sortieren ist ein fundamentales Problem: Manchmal ist Sortieren das Wesen der Anwendung Sortieren als Vorstufe (z.b. für das Suchen) Sortieren als Unterroutine (z.b. Painter s Algorithm) Viele verschiedene (Algorithmen-)Techniken Beweisbarkeit einer nichttrivialen unteren Schranke Sortiert wird ständig: Musikliste nach Künstlern oder Titeln Ankommende Pakete über die Datenleitung... Frank Heitmann [email protected] 13/48
14 Pause to Ponder... Motivation Wem fällt ein Brute-Force-Algorithmus zum Sortieren ein? Frank Heitmann 14/48
15 Motivation Sortieren mit Maximumbestimmung (MaxSort) Algorithmus 3 Sortieren mit Max 1: for i = n downto 1 do 2: idx = max(a) 3: B[i] = A[idx] 4: A[idx] = 0 5: end for 6: return B Frank Heitmann [email protected] 15/48
16 Bestimmung des Maximums Motivation Algorithmus 4 Find Maximum 1: max = 1 2: for i = 2 to n do 3: if a[i] > a[max] then 4: max = i 5: end if 6: end for 7: return max; Frank Heitmann [email protected] 16/48
17 InsertionSort: Die Idee Motivation Beim Sortieren durch Einfügen (InsertionSort) wird ähnlich wie beim Spielkarten sortieren vorgegangen: Starte mit der leeren linken Hand Nimm ein Karte und füge sie an der richtigen Position in der linken Hand ein. Dazu Vergleiche diese neue Karte von rechts nach links mit den Karten, die schon auf der linken Hand sind. Sobald eine kleinere Karte erreicht wird, füge ein. Zu jedem Zeitpunkt sind die Karten auf der linken Hand sortiert. Die Karten auf der linken Hand sind jeweils die obersten Karten des Haufens. Frank Heitmann 17/48
18 InsertionSort: Der Algorithmus Motivation Algorithmus 5 InsertionSort(A[1... n]) 1: for j = 2 to n do 2: key = A[j] 3: i = j 1 4: while i > 0 und A[i] > key do 5: A[i + 1] = A[i] 6: i = i 1 7: end while 8: A[i + 1] = key 9: end for Frank Heitmann [email protected] 18/48
19 Zusammenfassung / Diskussion Motivation Wir kennen jetzt Lineares Suchen und binäres Suchen MaxSort und InsertionSort Aber: Ist ein Verfahren besser als ein anderes? Was messen wir? Frank Heitmann [email protected] 19/48
20 Motivation Wir behandeln nachfolgend Zeit- und Platzkomplexität. Eine (elementare) Anweisung zählt dabei als eine Zeiteinheit. Eine benutzte (elemantare) Variable als eine Platzeinheit. Zeit- und Platzbedarf wird abhängig von der Länge n der Eingabe gezählt. Wir arbeiten hierfür mit Funktionen f : N N bzw. f : N R. Frank Heitmann [email protected] 20/48
21 ... Algorithmus 6 Lineare Suche 1: for i = 0 to n do 2: if a[i] == max mustermann then 3: return true 4: end if 5: end for 6: return false Wir behandeln nachfolgend Zeit- und Platzkomplexität (im uniformen Maß). Eine (elementare) Anweisung zählt dabei als eine Zeiteinheit. Eine benutzte (elemantare) Variable als eine Platzeinheit. Zeit- und Platzbedarf wird abhängig von der Länge n der Eingabe gezählt. Wir arbeiten hierfür mit Funktionen f : N R. Frank Heitmann [email protected] 21/48
22 - Motivation Wir werden nachfolgend konstante Faktoren ignorieren. Diese verschwinden in der (auch Landau-Notation). Konzentration auf das wesentliche. Abstrahiert von verschiedenen Rechnerarchitekturen. Guter Vergleich von Algorithmen möglich (praxisbewährt). Ferner werden wir anfängliche Schwankungen ignorieren können. ABER: 5 n und 5000 n wird als im Prinzip gleich angesehen werden! Frank Heitmann [email protected] 22/48
23 Beware... Anmerkung Der Sinn der zur Analyse der Laufzeit und des Speicherbedarfs von Algorithmen wird später klarer. Gleich folgen erstmal Definitionen und Beispiele dazu, bevor die Anwendung auf Algorithmen folgt. Frank Heitmann 23/48
24 - Definition Definition ( (und Verwandte)) O(g(n)) = {f c R + n 0 N n n 0 : f (n) c g(n) } Ω(g(n)) = {f c R + n 0 N n n 0 : f (n) c g(n) } o(g(n)) = {f c R + n 0 N n n 0 : f (n) c g(n) } ω(g(n)) = {f c R + n 0 N n n 0 : f (n) c g(n) } Θ(g(n)) = {f c 1, c 2 R + n 0 N n n 0 : c 1 g(n) f (n) c 2 g(n) } Bemerkung f ist dabei stets eine Funktion von N nach R, also f : N R. (Daher überall die Betragsstriche!) In der Literatur gibt es hier Varianten. Bei der tatsächlichen machen diese aber kaum einen Unterschied. Frank Heitmann [email protected] 24/48
25 Wichtige Funktionen Bemerkung Wichtige Funktionen in der Algorithmik/: Konstante Funktionen Logarithmen (log, ln) Wurzelfunktionen ( n) Polynome (beachte: n = n 1/2 ) Exponentialfunktionen (2 n )... Kombinationen davon In welchem Zusammenhang stehen diese bzgl. der? ( Hausaufgabe!) Frank Heitmann [email protected] 25/48
26 Zum Logarithmus Bemerkung Mit log werden wir stets eine Variante des Logarithmus zur Basis 2 meinen, nämlich: { 1, falls n 1 log(n) := log 2 (n) + 1, sonst. Damit ist log(n) die Länge der Binärdarstellung einer natürlichen Zahl n. (Die Anzahl von Speicherstellen/Schritten ist stets eine natürliche Zahl!) Andere Logarithmen werden nur selten benötigt und sind bis auf einen konstanten Faktor ohnehin gleich. Die Rechengesetze wie z.b. log(x y) = log(x) + log(y) und log(x r ) = r log(x) sind oft hilfreich. Frank Heitmann [email protected] 26/48
27 - Beispiele I Definition (Θ - Wiederholung) Θ(g(n)) = {f c 1, c 2 R + n 0 N n n 0 : c 1 g(n) f (n) c 2 g(n)} Beispiel Wir wollen 1 2 n2 3n Θ(n 2 ) zeigen. Wir suchen also Konstanten c 1, c 2, n 0, so dass c 1 n n2 3n c 2 n 2 für alle n n 0 erfüllt ist. Teilen durch n 2 führt zu c n c 2. Dies kann man z.b. mit c 1 = 2 8, c 2 = 1, n 0 = 24 erfüllen. Frank Heitmann [email protected] 27/48
28 - Variante Satz 1 f (n) O(g(n)) lim n f (n) g(n) < 2 f (n) o(g(n)) lim n f (n) g(n) = 0 3 f (n) Ω(g(n)) lim n f (n) g(n) > 0 4 f (n) ω(g(n)) lim n f (n) g(n) = Bemerkung Mit obigen Äquivalenzen und mit Kenntnissen der Limesbildung sind einige der unten folgenden Sätze schnell zu zeigen (und evtl. schneller als mit der obigen, ursprünglichen Definition). Frank Heitmann [email protected] 28/48
29 - Beispiele II Satz / Definition f (n) O(g(n)) lim n f (n) g(n) < Beispiel Wir wollen 1 2 n2 3n O(n 2 ) zeigen. 1/2n 2 3n 1 lim n n 2 = lim n 2 3 n = 1 2 Ähnlich zeigt man 1 2 n2 3n Ω(n 2 ) woraus das gleiche Ergebnis wie oben folgt, wie wir gleich sehen werden. Frank Heitmann [email protected] 29/48
30 Merkhilfe Bemerkung Eine kleine Merkhilfe (nicht mehr!) f O(g) f g f Ω(g) f g f Θ(g) f = g f o(g) f < g f ω(g) f > g Wir sagen, dass f asymptotisch kleiner gleich, größer gleich, gleich, kleiner bzw. größer ist als g, wenn f O(g), f Ω(g), f Θ(g), f o(g) bzw. f ω(g) gilt. Frank Heitmann [email protected] 30/48
31 Wichtige Eigenschaften Satz 1 f X (g) und g X (h) impliziert f X (h) (X {O, Ω, Θ, o, ω}) 2 f X (f ) (X {O, Ω, Θ}) 3 f Θ(g) g Θ(f ) Beweis (für 1. und X = O) Sei f O(g) und g O(h), dann gibt es c, n 0, so dass f (n) c g(n) n n 0 und ebenso c, n 0, so dass g(n ) c h(n ) n n 0. Sei nun n 0 = max(n 0, n 0 ). Dann gelten n n 0 beide Ungleichungen und für diese n gilt dann f (n ) c g(n) c c h(n ) also f (n ) c c h(n ) und da c c eine Konstante ist, folgt f O(h). Frank Heitmann [email protected] 31/48
32 Weitere wichtige Eigenschaften Satz 1 g O(f ) f Ω(g) 2 g o(f ) f ω(g) 3 g Θ(f ) g O(f ) Ω(f ) 4 o(f ) O(f ) 5 ω(f ) Ω(f ) 6 ω(f ) o(f ) =? 7 Ω(f ) O(f ) =? Beweis (für 4.) f (n) Sei g o(f ), dann gilt lim n g(n) = 0. Um g O(f ) zu zeigen, f (n) muss lim n g(n) = c für eine Konstante c gezeigt werden. Mit c = 0 folgt dies sofort. Frank Heitmann [email protected] 32/48
33 Noch mehr wichtige Eigenschaften Satz 1 f, g O(h) f + g O(h) 2 f O(g), c R + c f O(g) 3 f O(h 1 ), g O(h 2 ) f g O(h 1 h 2 ) Beweis (für 3.) Sei f O(h 1 ) und g O(h 2 ), dann gibt es c, n 0, so dass f (n) c h 1 (n) n n 0 und ebenso c, n 0, so dass g(n ) c h 2 (n ) n n 0. Daraus folgt f (n ) g(n ) c c h 1 (n ) h 2 (n ) n max(n 0, n 0 ), also f g O(h 1 h 2 ). Frank Heitmann [email protected] 33/48
34 Zur Übung Zur Übung Formaler Nachweis der obigen Eigenschaften (übt das Formale). Sei g eine unserer üblichen Funktionen. Man überlege sich für jedes X {O, Ω, Θ, o, ω} ein f mit f X (g) (baut Intuition auf). Frank Heitmann [email protected] 34/48
35 Algorithmus 1: Lineare Suche Algorithmus 7 Algorithmus 1 1: for i = 0 to n do 2: if a[i] == max mustermann then 3: return true 4: end if 5: end for 6: return false Analyse Laufzeit ist linear in der Länge n des Arrays, d.h. in O(n) oder genauer sogar in Θ(n). (Korrektheit ist noch zu zeigen. Dazu später mehr...) Frank Heitmann [email protected] 35/48
36 Algorithmus 2: Fakultät Algorithmus 8 fac(n) 1: res = 1 2: for i = 1 to n do 3: res = res i 4: end for 5: return res Analyse Die Laufzeit ist in O(n). Aber Achtung! Dies ist exponentiell in der Größe der Eingabe! Diese ist nämlich nur in O(log n). Frank Heitmann [email protected] 36/48
37 Vorgehen Vorgehen, wenn wir einen Algorithmus analysieren: 1 Überlegen bzgl. welcher Kenngröße der Eingabe wir messen wollen. Diese kann sich von der Größe der Eingabe unterscheiden! (Beispiel: Anzahl Knoten eines Graphen). 2 Laufzeit/Speicherbedarf bzgl. dieser Kenngröße ausdrücken. 3 Nochmal überlegen, ob dies die Aussage des Ergebnisses verfälscht (so wie bei der Fakultätsberechnung eben). I.A. sollte sich die eigentliche Eingabegröße leicht durch die Kenngröße ausdrücken lassen und der Unterschied sollte nicht zu groß sein. + Beim Graphen mit n Knoten ist die Adjazenmatrix in O(n 2 ). Ist eine Zahl n die Eingabe, so ist die Eingabegröße in O(log n). Eine Laufzeit von O(n) wäre also exponentiell in der Eingabe! Frank Heitmann [email protected] 37/48
38 Algorithmus 3: Bestimmung des Maximums Algorithmus 9 Find Maximum 1: max = 1 2: for i = 2 to n do 3: if a[i] > a[max] then 4: max = i 5: end if 6: end for 7: return max; Analyse Laufzeit ist linear in der Länge n des Arrays, d.h. in O(n) oder genauer sogar in Θ(n). Frank Heitmann [email protected] 38/48
39 Algorithmus 4: MaxSort Algorithmus 10 Sortieren mit Max 1: for i = n downto 1 do 2: idx = max(a) 3: B[i] = A[idx] 4: A[idx] = 0 5: end for 6: return B Laufzeit ist in O(n 2 ). Frank Heitmann [email protected] 39/48
40 Algorithmus 5: InsertionSort Algorithmus 11 InsertionSort(A[1... n]) 1: for j = 2 to n do 2: key = A[j] 3: i = j 1 4: while i > 0 und A[i] > key do 5: A[i + 1] = A[i] 6: i = i 1 7: end while 8: A[i + 1] = key 9: end for Laufzeit ist ebenfalls in O(n 2 ). Frank Heitmann [email protected] 40/48
41 Algorithmus 6: Binäre Suche Algorithmus 12 Binäre Suche 1: while first last idx < 0 do 2: m = first + ((last first)/2) 3: if a[m] < p then 4: first = m + 1 5: else if a[m] > p then 6: last = m 1 7: else 8: idx = m 9: end if 10: end while 11: return idx Laufzeit ist in O(log n). Frank Heitmann [email protected] 41/48
42 Algorithmus 7: Brute-Force-Algorithmen Das Mengenpartitionsproblem Gegeben sei eine Menge S N. Gesucht ist eine Menge A S, so dass x A x = x A x gilt. Algorithmus 13 Suchraum durchsuchen 1: for all A S do 2: if x A x = x A x then 3: return true 4: end if 5: end for 6: return false Laufzeit ist in O(2 S ). Frank Heitmann [email protected] 42/48
43 Eine kleine Warnung zum Schluss Wichtige Anmerkung Die verschluckt Konstanten. Wenn die zu gross/klein sind, dann kann dies das Ergebnis verfälschen! In dem Fall ist dann eine genauere Analyse (ohne ) nötig. I.A. hat sich die aber bewährt, weil Extreme wie 10 6 n und n in der Praxis kaum vorkommen. Kurz: O(2 n ) ist nicht zwingend immer schlimmer als O(n) aber auf lange Sicht (d.h. bei wachsenden Eingabelängen) auf jeden Fall und im Allgemeinen (und bei allem, was einem so i.a. in der Praxis begegnet) ist O(2 n ) eben doch schlimmer als O(n). Frank Heitmann [email protected] 43/48
44 Sequentielle Algorithmen - Zusammenfassung Ein paar Merkregeln für die bisherigen Laufzeiten: Konstant - Selten. Es wird nicht mal die ganze Eingabe betrachtet! - Aber Grundoperationen kosten nur konstant viel! Logarithmisch - Bei wiederholten Halbierungen oder wenn man mit der Höhe eines Baumes arbeitet. Lineare Laufzeiten, wenn man sich jedes Element der Eingabe einmal (oder: eine konstante Anzahl von Malen) ansieht. Quadratisch - jedes Element mit jedem anderen vergleichen. Höhere Polynome -? Exponentiell - wenn man jede Möglichkeit durchprobiert. Frank Heitmann [email protected] 44/48
45 Zusammenfassung Begriffe: Datentyp, Datenstruktur, Algorithmus Zeit- und Platzkomplexität ( gute Algorithmen), wobei wir das uniforme Kostenmaß nutzen (jeder (elementare) Schritt eine Zeiteinheit, jede (elementare) Variable eine Platzeinheit) Zwei Definitionen für die (und Verwandte) Wichtige Eigenschaften der Wichtige Funktionen und ihre Klassifizierung bzgl. der Lineares Suchen und Binäres Suchen MaxSort und InsertionSort Frank Heitmann [email protected] 45/48
46 Themen der Vorlesung Thema 2 Wir untersuchen den Zeit- und Platzbedarf von Algorithmen, wobei wir das uniforme Kostenmaß nutzen (jeder (elementare) Schritt eine Zeiteinheit, jede (elementare) Variable eine Platzeinheit). Zeit- und Platzbedarf wird abhängig von der Länge n der Eingabe gezählt. Hierzu nutzen wir Funktionen f : N N, bzw. f : N R. Thema 1 & 3 Weitere (Ober-)Themen der Vorlesung sind bekannte Algorithmen für Probleme lesen, verstehen und anwenden zu können, sowie neue Algorithmen entwerfen, deren Korrektheit beweisen und ihre Laufzeit analysieren zu können. Frank Heitmann [email protected] 46/48
47 Ausblick: Eine andere Art von Algorithmen Algorithmus 14 fac(n) 1: if n == 0 then 2: return 1 3: else 4: return n fac(n 1) 5: end if Dies ist ein rekursiver Algorithmus... unsere bisherigen Techniken sind hier bei der Analyse wenig hilfreich. Frank Heitmann [email protected] 47/48
48 Ausblick Nächstes Mal: Rekurrenzgleichungen Korrektheit von Algorithmen Dabei: Weiteres zu Suchen und Sortieren Datenstrukturen Frank Heitmann 48/48
Ü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
f 1 (n) = log(n) + n 2 n 5 f 2 (n) = n 3 + n 2 f 3 (n) = log(n 2 ) f 4 (n) = n n f 5 (n) = (log(n)) 2
Prof. aa Dr. E. Ábrahám Datenstrukturen und Algorithmen SS Lösung - Präsenzübung.05.0 F. Corzilius, S. Schupp, T. Ströder Aufgabe (Asymptotische Komplexität): (6 + 0 + 6 = Punkte) a) Geben Sie eine formale
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]
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,
V. Claus, Juli 2005 Einführung in die Informatik II 45
Um die Größenordnung einer reellwertigen oder ganzzahligen Funktion zu beschreiben, verwenden wir die so genannten Landau-Symbole (nach dem deutschen Mathematiker Edmund Landau, 1877-1938). Hierbei werden
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
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
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
Algorithmen und Datenstrukturen
Universität Innsbruck Institut für Informatik Zweite Prüfung 16. Oktober 2008 Algorithmen und Datenstrukturen Name: Matrikelnr: Die Prüfung besteht aus 8 Aufgaben. Die verfügbaren Punkte für jede Aufgabe
Motivation. Formale Grundlagen der Informatik 1 Kapitel 10. Motivation. Motivation. Bisher haben wir mit TMs. Probleme gelöst/entschieden/berechnet.
bei TMs bei Computern Formale Grundlagen der Informatik 1 Kapitel 10 Frank Heitmann [email protected] Bisher haben wir mit TMs Probleme gelöst/entschieden/berechnet. Dabei war entscheidbar
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
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
Vorlesung Datenstrukturen
Vorlesung Datenstrukturen Einleitung und Grundlagen Maike Buchin 18.4.2017 Verantwortliche Dozentin Organisation der Übungen Übungsleiter Korrekteure Maike Buchin [email protected] Raum NA 1/70 Sprechzeiten:
Ü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
Algorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Wintersemester 2012/13 1. Vorlesung Kapitel 1: Sortieren Prof. Dr. Alexander Wolff Lehrstuhl für Informatik I Das Problem Eingabe Gegeben: eine Folge A = a 1, a 2,..., a
Ordnen Sie die folgenden Funktionen nach ihrer asymptotischer Komplexität in aufsteigender Reihenfolge: i=1 4i + n = 4 n. i=1 i + 3n = 4 ( n(n+1)
für Informatik Prof. aa Dr. Ir. Joost-Pieter Katoen Christian Dehnert, Friedrich Gretz, Benjamin Kaminski, Thomas Ströder Tutoraufgabe (Asymptotische Komplexität): Ordnen Sie die folgenden Funktionen nach
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
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
Counting - Sort [ [ ] [ [ ] 1. SS 2008 Datenstrukturen und Algorithmen Sortieren in linearer Zeit
Counting-Sort Counting - Sort ( A,B,k ). for i to k. do C[ i]. for j to length[ A]. do C[ A[ j ] C[ A[ j ] +. > C[ i] enthält Anzahl der Elemente in 6. for i to k. do C[ i] C[ i] + C[ i ]. > C[ i] enthält
Algorithmen und Datenstrukturen
1 Algorithmen und Datenstrukturen Wintersemester 01/13 6. Vorlesung Prioritäten setzen Prof. Dr. Alexander Wolff Lehrstuhl für Informatik I Guten Morgen! Tipps für unseren ersten Test am 0. November: Lesen
1. Asymptotische Notationen 2. Zahlentheoretische Algorithmen 3. Sortierverfahren 4. String Matching 5. Ausgewählte Datenstrukturen
Gliederung 1. Asymptotische Notationen 2. Zahlentheoretische Algorithmen 3. Sortierverfahren 4. String Matching 5. Ausgewählte Datenstrukturen 1/1, Folie 1 2009 Prof. Steffen Lange - HDa/FbI - Effiziente
1. Übung Algorithmen I
Timo Bingmann, Christian Schulz INSTITUT FÜR THEORETISCHE INFORMATIK, PROF. SANDERS 1 KIT Timo Universität Bingmann, des LandesChristian Baden-Württemberg Schulz und nationales Forschungszentrum in der
Notation für das asymptotische Verhalten von Funktionen
Vorbemerkungen: Notation für das asymptotische Verhalten von Funktionen 1. Aussagen über die Komplexität von Algorithmen und von Problemen sollen (in der Regel) unabhängig von speziellen Maschinenmodellen
4. Sortieren 4.1 Vorbemerkungen
. Seite 1/21 4. Sortieren 4.1 Vorbemerkungen allgemeines Sortierproblem spezielle Sortierprobleme Ordne a 1,..., a n so um, dass Elemente in aufsteigender Reihenfolge stehen. Die a i stammen aus vollständig
Datenstrukturen, Algorithmen und Programmierung 2
Datenstrukturen, Algorithmen und Programmierung 2 Professor Dr. Lehrstuhl für Algorithm Engineering, LS11 Fakultät für Informatik, TU Dortmund 2. VO SS 2009 16. April 2009 1 Überblick Asymptotische Schranken
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
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
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
2 Wachstumsverhalten von Funktionen
Algorithmen und Datenstrukturen 40 2 Wachstumsverhalten von Funktionen Beim Vergleich der Worst-Case-Laufzeiten von Algorithmen in Abhängigkeit von der Größe n der Eingabedaten ist oft nur deren Verhalten
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,
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
Kapitel 3 Zur Korrektheit und Effizienz von Algorithmen
Kapitel 3 Zur Korrektheit und Effizienz von Algorithmen Ziel: Kurze Einführung in den Pseudocode zur Beschreibung von Algorithmen Induktionsbeweise als wichtiges Hilfsmittel, um die Korrektheit eines Algorithmus
3.2. Korrektheit und Komplexität am Beispiel: Sortieren Sortieren ist eine wichtige Basis-Operation für komplexe Algorithmen
3.2. Korrektheit und Komplexität am Beispiel: Sortieren Sortieren ist eine wichtige Basis-Operation für komplexe Algorithmen Sortierproblem Eingabe: Folge von n natürlichen Zahlen a 1, a 2,, a n, die Folge
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:
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,
Übung Algorithmen und Datenstrukturen
Übung Algorithmen und Datenstrukturen Sommersemester 2016 Patrick Schäfer, Humboldt-Universität zu Berlin Agenda 1. Vorstellen des vierten Übungsblatts 2. Vorbereitende Aufgaben für das vierte Übungsblatt
Ü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
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. 7. Suchen in linearen Feldern
Datenstrukturen und Algorithmen 7. Suchen in linearen Feldern VO 708.031 Suchen in linearen Feldern [email protected] 1 Inhalt der Vorlesung 1. Motivation, Einführung, Grundlagen 2. Algorithmische
8. Sortieren II. 8.1 Heapsort. Heapsort. [Max-]Heap 6. Heapsort, Quicksort, Mergesort. Binärer Baum mit folgenden Eigenschaften
Heapsort, Quicksort, Mergesort 8. Sortieren II 8.1 Heapsort [Ottman/Widmayer, Kap. 2.3, Cormen et al, Kap. 6] 9 210 Heapsort [Max-]Heap 6 Inspiration von Selectsort: Schnelles Einfügen Binärer Baum mit
8.1.3 Operation Build-Max-Heap Operation zur Konstruktion eines Heaps Eingabe: Feld A[1..n], n = länge(a) BUILD-MAX-HEAP (A)
Stand der Vorlesung: Datenstruktur Heap: fast vollständiger Binärbaum MaxHeap: sortierter Heap, größtes Element an Wurzel Sortierverfahren: HeapSort: Sortieren eines Feldes A[1.. n] Idee: in place: Feld
Datenstrukturen und Algorithmen
Datenstrukturen und Algorithmen VO 708.031 27.10.2011 [email protected] 1 Wiederholung Wir vergleichen Algorithmen anhand des ordnungsmäßigen Wachstums von T(n), S(n), Asymptotische Schranken: O-Notation:
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
Algorithmen und Datenstrukturen 1-1. Seminar -
Algorithmen und Datenstrukturen 1-1. Seminar - Dominic Rose Bioinformatics Group, University of Leipzig Wintersemester 2009/10 Inhalt der ersten beiden Vorlesungen Algorithmenbegriff Komplexität, Asymptotik
Kapitel 3: Untere Schranken für algorithmische Probleme Gliederung
Gliederung 1. Grundlagen 2. Analyse der Laufzeit von Algorithmen 3. Untere Schranken für algorithmische Probleme 4. Sortier- und Selektionsverfahren 5. Paradigmen des Algorithmenentwurfs 6. Ausgewählte
Übungsblatt 4. Aufgabe 1. IN8009 Algorithmen und Datenstrukturen Thomas Stibor
Aufgabe 1 Zeigen Sie 2n 2 = O(n 3 ), n = Ω(lgn), n 2 /2 2n = Θ(n 2 ). Übungsblatt 4 Zu zeigen: 2n 2 = O(n 3 ). O(g(n)) = {f(n) : es existieren positive Konstanten c und n 0, sodass 0 f(n) cg(n) für alle
Algorithmik Kap. 2: Laufzeit von Algorithmen
1. Motivation 1.1 Fallstudie: Sortieralgorithmen 1.2 Fallstudie: Selektionsalgorithmen 2. Laufzeit von Algorithmen 2.1 Grundlagen 2.2 3. Paradigmen des Algorithmenentwurfs 3.1 Dynamisches Programmieren
Informatik I Komplexität von Algorithmen
Informatik I Komplexität von Algorithmen G. Zachmann Clausthal University, Germany [email protected] Leistungsverhalten von Algorithmen Speicherplatzkomplexität: Wird primärer & sekundärer Speicherplatz
Algorithmen und Datenstrukturen. Organisatorisches. Christian Komusiewicz Ernst-Abbe-Platz 2, R3315
Algorithmen und Datenstrukturen Christian Komusiewicz Ernst-Abbe-Platz 2, R3315 [email protected] Friedrich-Schiller-Universität Jena Institut für Informatik http://users.fmi.uni-jena.de/
F3 Berechenbarkeit und Komplexität
F3 Berechenbarkeit und Komplexität Matthias Jantzen (nach Vorlage von Berndt Farwer) Fachbereich Informatik AB Theoretische Grundlagen der Informatik (TGI) Universität Hamburg [email protected]
Komplexität von Algorithmen OOPM, Ralf Lämmel
Ganz schön komplex! Komplexität von Algorithmen OOPM, Ralf Lämmel 885 Motivierendes Beispiel Algorithmus Eingabe: ein Zahlen-Feld a der Länge n Ausgabe: Durchschnitt Fragen: sum = 0; i = 0; while (i
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
Algorithmen I. Tutorium 1-3. Sitzung. Dennis Felsing
Algorithmen I Tutorium 1-3. Sitzung Dennis Felsing [email protected] www.stud.uni-karlsruhe.de/~ubcqr/algo 2011-05-02 Überblick 1 Sortieren und Suchen 2 Mastertheorem 3 Datenstrukturen 4 Kreativaufgabe
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 011 Übungsblatt 30. Mai 011 Grundlagen: Algorithmen und Datenstrukturen
Algorithmen und Datenstrukturen
1 Algorithmen und Datenstrukturen Wintersemester 2016/17 13. Vorlesung Binäre Suchbäume Prof. Dr. Alexander Wolff Lehrstuhl für Informatik I 2 Dynamische Menge verwaltet Elemente einer sich ändernden Menge
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
Kapitel 4: Dynamische Datenstrukturen. Algorithmen und Datenstrukturen WS 2012/13. Prof. Dr. Sándor Fekete
Kapitel 4: Dynamische Datenstrukturen Algorithmen und Datenstrukturen WS 2012/13 Prof. Dr. Sándor Fekete 4.4 Binäre Suche Aufgabenstellung: Rate eine Zahl zwischen 100 und 114! Algorithmus 4.1 INPUT: OUTPUT:
Aufgabe (Schreibtischtest, Algorithmenanalyse)
Aufgabe (Schreibtischtest, Algorithmenanalyse) Führen Sie einen Schreibtischtest für den Algorithmus Positionsort für das folgende Eingabe-Array durch. Geben Sie nach jedem Durchlauf der for-schleife mit
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
es gibt Probleme, die nicht berechenbar sind (z.b. Menge aller Funktionen N N und die Menge aller Sprachen sind überabzählbar)
Komplexitätstheorie es gibt Probleme, die nicht berechenbar sind (z.b. Menge aller Funktionen N N und die Menge aller Sprachen sind überabzählbar) andere Probleme sind im Prinzip berechenbar, möglicherweise
2 Sortieren durch Vergleichen Eingabefolge a 1, a 2,..., a n 2, 1, 3 Sortieralg. Für festes n ist ein vergleichsbasierter Sortieralg. charakterisiert
1 Algorithmen und Datenstrukturen Wintersemester 2014/15 9. Vorlesung Sortieren in Linearzeit Prof. Dr. Alexander Wolff Lehrstuhl für Informatik I 2 Sortieren durch Vergleichen Eingabefolge a 1, a 2,...,
UE Algorithmen und Datenstrukturen 1 UE Praktische Informatik 1. Übung 5. Asymptotische Laufzeitkomplexität Definition Regeln Beispiele
UE Algorithmen und Datenstrukturen 1 UE Praktische Informatik 1 Übung 5 Asymptotische Laufzeitkomplexität Definition Regeln Beispiele Institut für Pervasive Computing Johannes Kepler Universität Linz Altenberger
Komplexität. G. Zachmann Clausthal University, Germany Leistungsverhalten von Algorithmen
lausthal Informatik II Komplexität von Algorithmen. Zachmann lausthal University, ermany [email protected] Leistungsverhalten von Algorithmen Speicherplatzkomplexität: Wird primärer & sekundärer
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
Informatik I Komplexität von Algorithmen
Leistungsverhalten von Algorithmen Informatik I Komplexität von Algorithmen G. Zachmann Clausthal University, Germany [email protected] Speicherplatzkomplexität: Wird primärer & sekundärer Speicherplatz
Kapitel 8 Fortgeschrittene Sortieralgorithmen
Kapitel 8 Fortgeschrittene Sortieralgorithmen Zur Erinnerung: in Kapitel 6 Elementare Sortierverfahren Sortierverfahren, die auf Vergleichen von Werten basieren. Aufwand zum Sortieren von Feldern von n
Algorithmen und Datenstrukturen Tutorium Übungsaufgaben
Algorithmen und Datenstrukturen Tutorium Übungsaufgaben AlgoDat - Übungsaufgaben 1 1 Landau-Notation Aufgabe Lösung 2 Rekurrenzen Aufgabe 3 Algorithmenentwurf und -analyse Aufgabe AlgoDat - Übungsaufgaben
Definition Ein Heap (priority queue) ist eine abstrakte Datenstruktur mit folgenden Kennzeichen:
HeapSort Allgemeines Sortieralgorithmen gehören zu den am häufigsten angewendeten Algorithmen in der Datenverarbeitung. Man hatte daher bereits früh ein großes Interesse an der Entwicklung möglichst effizienter
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
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
12 (2-4)-Bäume Implementierbare Funktionen. (2-4)-Bäume sind durch folgende Eigenschaften deniert: 1. Alle Äste sind gleich lang
12 (2-4)-Bäume (2-4)-Bäume sind durch folgende Eigenschaften deniert: 1. Alle Äste sind gleich lang 2. Die Ordnung (maximale Anzahl der Söhne eines Knotens) ist gleich 4 3. Innere Knoten haben 2 Söhne
8. A & D - Heapsort. Werden sehen, wie wir durch geschicktes Organsieren von Daten effiziente Algorithmen entwerfen können.
8. A & D - Heapsort Werden sehen, wie wir durch geschicktes Organsieren von Daten effiziente Algorithmen entwerfen können. Genauer werden wir immer wieder benötigte Operationen durch Datenstrukturen unterstützen.
11. Elementare Datenstrukturen
11. Elementare Datenstrukturen Definition 11.1: Eine dynamische Menge ist gegeben durch eine oder mehrer Mengen von Objekten sowie Operationen auf diesen Mengen und den Objekten der Mengen. Dynamische
Algorithmen und Datenstrukturen Kapitel 7 Dynamische Mengen, das Suchproblem &
Algorithmen und Datenstrukturen Kapitel 7 Dynamische Mengen, das Suchproblem & Frank Heitmann [email protected] 25. November 2015 Frank Heitmann [email protected] 1/122
3. Übungsblatt zu Algorithmen I im SoSe 2017
Karlsruher Institut für Technologie Prof. Dr. Jörn Müller-Quade Institut für Theoretische Informatik Björn Kaidel, Sebastian Schlag, Sascha Witt 3. Übungsblatt zu Algorithmen I im SoSe 2017 http://crypto.iti.kit.edu/index.php?id=799
2.2 Allgemeine (vergleichsbasierte) Sortierverfahren
. Allgemeine (vergleichsbasierte) Sortierverfahren Vergleichsbaum: Der Aufbau des Verbleichsbaum ist für jeden Algorithmus und jede Eingabelänge n gleich. Jede Permutation der Eingabe, muss zu einem anderen
Algorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Prof. Martin Lercher Institut für Informatik Heinrich-Heine-Universität Düsseldorf Algorithmen und Datenstrukturen Teil 3 Suchen in Listen Version vom: 15. November 2016
Sortieralgorithmen. Jan Pöschko. 18. Januar Problemstellung Definition Warum Sortieren?... 2
Jan Pöschko 18. Januar 2007 Inhaltsverzeichnis 1 Problemstellung 2 1.1 Definition................................... 2 1.2 Warum Sortieren?.............................. 2 2 Einfache Sortieralgorithmen
Grundlagen: Algorithmen und Datenstrukturen
Grundlagen: Algorithmen und Datenstrukturen Prof. Dr. Hanjo Täubig Lehrstuhl für Effiziente Algorithmen (Prof. Dr. Ernst W. Mayr) Institut für Informatik Technische Universität München Sommersemester 2010
Algorithmen und Datenstrukturen Tutorium I
Algorithmen und Datenstrukturen Tutorium I 20. - 25. 04. 2016 AlgoDat - Tutorium I 1 1 Organisatorisches Kontakt 2 Landau-Notation Definiton von O Logarithmen Gesetze & Ableitung Satz von l Hôpital 3 Algorithmen
Kapitel 8. Rekursionsgleichungen. Landau-Symbole. Lösen von Rekursionsgleichungen Allgemeines Iterationsmethode Spezialfälle Erzeugende Funktionen
Rekursionsgleichungen Landau-Symbole Kapitel 8 Lösen von Rekursionsgleichungen Allgemeines Iterationsmethode Spezialfälle Erzeugende Funktionen Kapitel 8 Rekursionsgleichungen p./42 Landau-Symbole () Modellierung
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
Informatik II, SS 2014
Informatik II SS 2014 (Algorithmen & Datenstrukturen) Vorlesung 7 (21.5.2014) Binäre Suche, Hashtabellen I Algorithmen und Komplexität Abstrakte Datentypen : Dictionary Dictionary: (auch: Maps, assoziative
7. Übung zu Algorithmen I 1. Juni 2016
7. Übung zu Algorithmen I 1. Juni 2016 Lukas Barth [email protected] (mit Folien von Lisa Kohl) Roadmap Ganzzahliges Sortieren mit reellen Zahlen Schnellere Priority Queues Bucket Queue Radix Heap Organisatorisches
Ü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
Komplexität von Algorithmen Musterlösungen zu ausgewählten Übungsaufgaben
Dieses Dokument soll mehr dazu dienen, Beispiele für die formal korrekte mathematische Bearbeitung von Aufgaben zu liefern, als konkrete Hinweise auf typische Klausuraufgaben zu liefern. Die hier gezeigten
P, NP und NP -Vollständigkeit
P, NP und NP -Vollständigkeit Mit der Turing-Maschine haben wir einen Formalismus kennengelernt, um über das Berechenbare nachdenken und argumentieren zu können. Wie unsere bisherigen Automatenmodelle
( )= 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
Theoretische Informatik. Exkurs: Komplexität von Optimierungsproblemen. Optimierungsprobleme. Optimierungsprobleme. Exkurs Optimierungsprobleme
Theoretische Informatik Exkurs Rainer Schrader Exkurs: Komplexität von n Institut für Informatik 13. Mai 2009 1 / 34 2 / 34 Gliederung Entscheidungs- und Approximationen und Gütegarantien zwei Greedy-Strategien
Beispiellösung zu den Übungen Datenstrukturen und Algorithmen SS 2008 Blatt 5
Robert Elsässer Paderborn, den 15. Mai 2008 u.v.a. Beispiellösung zu den Übungen Datenstrukturen und Algorithmen SS 2008 Blatt 5 AUFGABE 1 (6 Punkte): Nehmen wir an, Anfang bezeichne in einer normalen
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
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
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
1 Minimumssuche k = n Maximumssuche n. Median
Kapitel 1 Einführung Anhand des folgenden Problems soll deutlich gemacht werden, welche Schwierigkeiten beim Vergleich verschiedener Lösungsansätze auftreten können, um dann einige sinnvolle Kriterien
