Algorithmen und Datenstrukturen Kapitel 1 Algorithmen & Algorithmenanalyse

Größe: px
Ab Seite anzeigen:

Download "Algorithmen und Datenstrukturen Kapitel 1 Algorithmen & Algorithmenanalyse"

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 Übung Algorithmen und Datenstrukturen Sommersemester 2016 Patrick Schäfer, Humboldt-Universität zu Berlin Organisation Vorlesung: Montag 11 13 Uhr Marius Kloft RUD 26, 0 115 Mittwoch 11 13 Uhr Marius Kloft

Mehr

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

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

Mehr

2. Effizienz von Algorithmen

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

Mehr

Abgabe: (vor der Vorlesung) Aufgabe 2.1 (P) O-Notation Beweisen Sie die folgenden Aussagen für positive Funktionen f und g:

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,

Mehr

V. Claus, Juli 2005 Einführung in die Informatik II 45

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

Mehr

Grundlagen: Algorithmen und Datenstrukturen

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

Mehr

Algorithmen und Datenstrukturen I Grundlagen

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

Mehr

Algorithmen und Datenstrukturen

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

Mehr

Algorithmen und Datenstrukturen

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

Mehr

Motivation. Formale Grundlagen der Informatik 1 Kapitel 10. Motivation. Motivation. Bisher haben wir mit TMs. Probleme gelöst/entschieden/berechnet.

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

Mehr

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

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

Mehr

Komplexität von Algorithmen:

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

Mehr

Vorlesung Datenstrukturen

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:

Mehr

Übung Algorithmen und Datenstrukturen

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

Mehr

Algorithmen und Datenstrukturen

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

Mehr

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)

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

Mehr

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

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

Mehr

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

Mehr

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

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

Mehr

Algorithmen und Datenstrukturen

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

Mehr

1. Asymptotische Notationen 2. Zahlentheoretische Algorithmen 3. Sortierverfahren 4. String Matching 5. Ausgewählte Datenstrukturen

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

Mehr

1. Übung Algorithmen I

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

Mehr

Notation für das asymptotische Verhalten von Funktionen

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

Mehr

4. Sortieren 4.1 Vorbemerkungen

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

Mehr

Datenstrukturen, Algorithmen und Programmierung 2

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

Mehr

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

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

Mehr

Algorithmen und Datenstrukturen

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

Mehr

WS 2009/10. Diskrete Strukturen

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

Mehr

2 Wachstumsverhalten von Funktionen

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

Mehr

3.3 Laufzeit von Programmen

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

Mehr

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

Mehr

Kapitel 3 Zur Korrektheit und Effizienz von Algorithmen

Kapitel 3 Zur Korrektheit und Effizienz von Algorithmen Kapitel 3 Zur Korrektheit und Effizienz von Algorithmen Ziel: Kurze Einführung in den Pseudocode zur Beschreibung von Algorithmen Induktionsbeweise als wichtiges Hilfsmittel, um die Korrektheit eines Algorithmus

Mehr

3.2. Korrektheit und Komplexität am Beispiel: Sortieren Sortieren ist eine wichtige Basis-Operation für komplexe Algorithmen

3.2. Korrektheit und Komplexität am Beispiel: Sortieren Sortieren ist eine wichtige Basis-Operation für komplexe Algorithmen 3.2. Korrektheit und Komplexität am Beispiel: Sortieren Sortieren ist eine wichtige Basis-Operation für komplexe Algorithmen Sortierproblem Eingabe: Folge von n natürlichen Zahlen a 1, a 2,, a n, die Folge

Mehr

Kapitel 9. Komplexität von Algorithmen und Sortieralgorithmen

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

Mehr

Algorithmen und Datenstrukturen Effizienz und Funktionenklassen

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

Mehr

Übung Algorithmen und Datenstrukturen

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

Mehr

Übung zur Vorlesung Berechenbarkeit und Komplexität

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

Mehr

Kapitel 9. Komplexität von Algorithmen und Sortieralgorithmen

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

Mehr

Datenstrukturen und Algorithmen. 7. Suchen in linearen Feldern

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

Mehr

8. Sortieren II. 8.1 Heapsort. Heapsort. [Max-]Heap 6. Heapsort, Quicksort, Mergesort. Binärer Baum mit folgenden Eigenschaften

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

Mehr

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

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

Mehr

Datenstrukturen und Algorithmen

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:

Mehr

Abschnitt: Algorithmendesign und Laufzeitanalyse

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

Mehr

Algorithmen und Datenstrukturen 1-1. Seminar -

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

Mehr

Kapitel 3: Untere Schranken für algorithmische Probleme Gliederung

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

Mehr

Übungsblatt 4. Aufgabe 1. IN8009 Algorithmen und Datenstrukturen Thomas Stibor

Ü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

Mehr

Algorithmik Kap. 2: Laufzeit von Algorithmen

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

Mehr

Informatik I Komplexität von Algorithmen

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

Mehr

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

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

Mehr

F3 Berechenbarkeit und Komplexität

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]

Mehr

Komplexität von Algorithmen OOPM, Ralf Lämmel

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

Mehr

Kapitel 6. Komplexität von Algorithmen. Xiaoyi Jiang Informatik I Grundlagen der Programmierung

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

Mehr

Algorithmen I. Tutorium 1-3. Sitzung. Dennis Felsing

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

Mehr

Grundlagen: Algorithmen und Datenstrukturen

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

Mehr

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

Mehr

Algorithmen und Datenstrukturen Heapsort

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

Mehr

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

Mehr

Aufgabe (Schreibtischtest, Algorithmenanalyse)

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

Mehr

Algorithmen und Datenstrukturen (für ET/IT)

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

Mehr

es gibt Probleme, die nicht berechenbar sind (z.b. Menge aller Funktionen N N und die Menge aller Sprachen sind überabzählbar)

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

Mehr

2 Sortieren durch Vergleichen Eingabefolge a 1, a 2,..., a n 2, 1, 3 Sortieralg. Für festes n ist ein vergleichsbasierter Sortieralg. charakterisiert

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

Mehr

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

Mehr

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

Komplexität. G. Zachmann Clausthal University, Germany Leistungsverhalten von Algorithmen lausthal Informatik II Komplexität von Algorithmen. Zachmann lausthal University, ermany [email protected] Leistungsverhalten von Algorithmen Speicherplatzkomplexität: Wird primärer & sekundärer

Mehr

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

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

Mehr

Informatik I Komplexität von Algorithmen

Informatik I Komplexität von Algorithmen Leistungsverhalten von Algorithmen Informatik I Komplexität von Algorithmen G. Zachmann Clausthal University, Germany [email protected] Speicherplatzkomplexität: Wird primärer & sekundärer Speicherplatz

Mehr

Kapitel 8 Fortgeschrittene Sortieralgorithmen

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

Mehr

Algorithmen und Datenstrukturen Tutorium Übungsaufgaben

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

Mehr

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

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

Mehr

2 Sortieren. Beispiel: Es seien n = 8 und a = i : a i : ϕ(i) : a ϕ(i) :

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

Mehr

Wiederholung ADT Menge Ziel: Verwaltung (Finden, Einfügen, Entfernen) einer Menge von Elementen

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

Mehr

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

Mehr

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

Mehr

11. Elementare Datenstrukturen

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

Mehr

Algorithmen und Datenstrukturen Kapitel 7 Dynamische Mengen, das Suchproblem &

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

Mehr

3. Übungsblatt zu Algorithmen I im SoSe 2017

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

Mehr

2.2 Allgemeine (vergleichsbasierte) Sortierverfahren

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

Mehr

Algorithmen und Datenstrukturen

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

Mehr

Sortieralgorithmen. Jan Pöschko. 18. Januar Problemstellung Definition Warum Sortieren?... 2

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

Mehr

Grundlagen: Algorithmen und Datenstrukturen

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

Mehr

Algorithmen und Datenstrukturen Tutorium I

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

Mehr

Kapitel 8. Rekursionsgleichungen. Landau-Symbole. Lösen von Rekursionsgleichungen Allgemeines Iterationsmethode Spezialfälle Erzeugende Funktionen

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

Mehr

Datenstrukturen & Algorithmen

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

Mehr

Informatik II, SS 2014

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

Mehr

7. Übung zu Algorithmen I 1. Juni 2016

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

Mehr

Übersicht. Datenstrukturen und Algorithmen. Übersicht. Divide-and-Conquer. Vorlesung 9: Quicksort (K7)

Ü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

Mehr

Komplexität von Algorithmen Musterlösungen zu ausgewählten Übungsaufgaben

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

Mehr

P, NP und NP -Vollständigkeit

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

Mehr

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

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

Mehr

Theoretische Informatik. Exkurs: Komplexität von Optimierungsproblemen. Optimierungsprobleme. Optimierungsprobleme. Exkurs Optimierungsprobleme

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

Mehr

Beispiellösung zu den Übungen Datenstrukturen und Algorithmen SS 2008 Blatt 5

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

Mehr

Komplexität von Algorithmen

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

Mehr

Kapitel 2: Analyse der Laufzeit von Algorithmen Gliederung

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

Mehr

Kapitel 2: Analyse der Laufzeit von Algorithmen Gliederung

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

Mehr

1 Minimumssuche k = n Maximumssuche n. Median

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

Mehr