1.3 Erinnerung: Mergesort

Größe: px
Ab Seite anzeigen:

Download "1.3 Erinnerung: Mergesort"

Transkript

1 Mergesort 1.3 Erinnerung: Mergesort Um n Zahlen/Objekte a 1,..., a n zu sortieren, geht der Mergesort-Algorithmus so vor: Falls n n 0 : Sortiere mit einem naiven Algorithmus (z. B. Insertion Sort). Sonst: k := n/2. Sortiere a 1,..., a k (erste Hälfte) rekursiv, Ergebnis b 1,..., b k ; sortiere a k+1,..., a n (zweite Hälfte) rekursiv, Ergebnis b k+1,..., b n. Mische die Folgen b 1,..., b k und b k+1,..., b n zu einer sortierten Folge zusammen Reißverschlussverfahren Aufwand: n 1 Vergleiche. FG KTuEA, TU Ilmenau Effiziente Algorithmen Sommersemester

2 Mergesort Analyse über Rekurrenzungleichungen : Wir zählen nur Vergleiche. C(n) = Anzahl der Vergleiche beim Sortieren von n Eingaben, schlechtester Fall. C(1) = 0, C(2) = 1, C(3) = 3. C(n) =C( n/2 )+C( n/2 )+n 1. Behauptung: C(n) =n log n (2 log n 1). n C(n) Beweis: Tafel. FG KTuEA, TU Ilmenau Effiziente Algorithmen Sommersemester

3 Mergesort Satz Für die Vergleichsanzahl im schlechtesten Fall bei Mergesort gilt: Beweis: Tafel. C(n) n log n. FG KTuEA, TU Ilmenau Effiziente Algorithmen Sommersemester

4 Master-Theorem 1.4 Das Master-Theorem Wir betrachten Rekurrenzungleichungen der folgenden Form: B(n) { g, falls n =1 a B(n/b)+f (n), sonst. Dabei: a 1 eine ganze Zahl, b > 1 ist eine Konstante, f (n) ist eine monoton wachsende Funktion. Falls n/b keine ganze Zahl ist, sollte man sich an Stelle von B(n/b) z. B. B( n/b ) denken. FG KTuEA, TU Ilmenau Effiziente Algorithmen Sommersemester

5 Master-Theorem Ergibt sich bei Divide-and-Conquer-Algorithmus mit: Trivialer Basisfall (Größe 1) hat höchstens Kosten g, aus Instanz der Größe n > 1 werden ( divide ) a Teilinstanzen der Größe n/b (passend gerundet) gebildet, es erfolgen a rekursive Aufrufe, und die a Lösungen werden kombiniert. Kosten für das Aufspalten und das Kombinieren: f (n). O.B.d.A.: B(n) monoton wachsend. Sonst definiere: ˆB(n) = max{b(i) 1 i n}. ˆB(n) ist monoton und erfüllt die Rekurrenzungleichung. FG KTuEA, TU Ilmenau Effiziente Algorithmen Sommersemester

6 Master-Theorem Vereinfachende Annahmen (nicht wesentlich): n = b l. b > 1 ist ganzzahlig. Level 0: Wurzel, hat Eintrag f (n) und hat a Kinder auf Level 1. Knoten v auf Level i <l hat Eintrag f (n/b i ) und hat a Kinder auf Level i + 1. Knoten auf Level l sind Blätter, sie haben Eintrag g. FG KTuEA, TU Ilmenau Effiziente Algorithmen Sommersemester

7 Master-Theorem f (n) f (n) a f (n/b) f (n/b) a f (n/b) a l f (n/b 2 ) f (n/b 2 ) f (n/b 2 ) f (n/b 2 ) a 2 f (n/b 2 ) g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g a l g FG KTuEA, TU Ilmenau Effiziente Algorithmen Sommersemester

8 Master-Theorem Lemma Wenn v ein Knoten auf Level i ist, dann gilt: B(n/b i ) Summe der Einträge im Unterbaum unter v. (Beweis durch Induktion über l i.) Also: B(n) Summe aller Einträge im Baum. FG KTuEA, TU Ilmenau Effiziente Algorithmen Sommersemester

9 Master-Theorem Auf Level i gibt es a i Knoten mit Eintrag f (n/b i ). Summation liefert: B(n) 0 i<l a i f (n/b i )+a l g. Erster Term B 1 : Beitrag zu Gesamtkosten aus dem Inneren des Baums. Zweiter Term B 2 : Beitrag von den Blättern. (Algorithmisch: Die a l Basisfälle.) Leicht: B 2 (n) =a l g =(b log b a ) l g =(b l ) log b a g = n log b a g. FG KTuEA, TU Ilmenau Effiziente Algorithmen Sommersemester

10 Master-Theorem Erster Term: B 1 (n) = 0 i<l ai f (n/b i ). 3Fälle, je nach Verhalten des Gesamtaufwandes a i f (n/b i ) auf Level i, für i =0,..., l 1. Intuitiv: 1. Fall: a i f (n/b i )wächst mit i an. 2. Fall: a i f (n/b i ) bleibt in etwa gleich über alle i. 3. Fall: a i f (n/b i ) schrumpft mit i. Genaueres folgt. FG KTuEA, TU Ilmenau Effiziente Algorithmen Sommersemester

11 Master-Theorem 1. Fall: f (n) =O(n α ) mit b α < a. Die Beiträge aus den unteren Baumebenen (kleine Instanzen) dominieren, nicht wegen ihrer Größe, sondern wegen ihrer Anzahl. f (n) f (n/b) f (n/b) f (n/b) f (n/b 2 ) f (n/b 2 ) f (n/b 2 ) f (n/b 2 ) f (n/b 2 ) f (n/b 2 ) f (n/b 2 ) f (n/b 2 ) f (n/b 2 ) g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g FG KTuEA, TU Ilmenau Effiziente Algorithmen Sommersemester

12 Master-Theorem Wir benutzen immer die Summenformel für geometrische Reihen: ( ) 0 i<l q i = ql 1 q 1,für q 0, q 1. FG KTuEA, TU Ilmenau Effiziente Algorithmen Sommersemester

13 Master-Theorem B 1 (n) = 0 i<l = O ( a i f (n/b i ) 0 i<l a i ( n b i ) α ) = O ( ( a ) i n α ) b α 0 i<l ( = O n α (a/b α ) l ) (a/b α ) 1 ( ) = O n α a l 1 (b l ) α = O(a l ). Also: B(n) B 1 (n)+b 2 (n) =O(a l )=O(n log b a ). FG KTuEA, TU Ilmenau Effiziente Algorithmen Sommersemester

14 Master-Theorem 1. Fall: f (n) =O(n α ) mit b α < a. Typische Beispiele: Karatsuba-Algorithmus, Strassen-Algorithmus. FG KTuEA, TU Ilmenau Effiziente Algorithmen Sommersemester

15 Master-Theorem 2. Fall: f (n) =O(n log b a ). f (n/b i )wächst mit n/b i, i = l 1,..., 0, höchstens mit einer Rate, die durch das Schrumpfen der Größe der Baumebene ausgeglichen wird. Der Gesamtaufwand ist beschränkt durch den Aufwand für die Ebene direkt über den Blättern, multipliziert mit der Anzahl der Levels. f (n) f (n/b) f (n/b) f (n/b 2 ) f (n/b 2 ) f (n/b 2 ) f (n/b 2 ) g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g FG KTuEA, TU Ilmenau Effiziente Algorithmen Sommersemester

16 Master-Theorem B 1 (n) = = O = O = O 0 i<l a i f (n/b i ) 0 i<l a i ( n ) logb a b i a i nlog b a a i 0 i<l ( l n log a) b. Also: B(n) B 1 (n)+b 2 (n) =O(l n log b a )+O(n log b a )=O((log n) n log b a ). Typische Beispiele: Mergesort, Binäre Suche. FG KTuEA, TU Ilmenau Effiziente Algorithmen Sommersemester

17 Master-Theorem 3. Fall: f (n) = Ω(n α ), mit b α > a UND (Regularitätsbedingung: f wächst stets mit der entsprechenden Rate) Es gibt ein c < 1 mit: f (n) (a/c) f (n/b). Wenn man die Größe des Inputs von n/b auf n erhöht, wachsen die Kosten im Knoten von f (n/b) auf f (n), mindestens um den Faktor a/c > a. f (n) wächst sehr rasch mit n, so dass der Beitrag der oberen Baumebenen und insbesondere der Wurzel überwiegt. FG KTuEA, TU Ilmenau Effiziente Algorithmen Sommersemester

18 Master-Theorem f (n) f (n/b) f (n/b) f (n/b 2 ) f (n/b 2 ) f (n/b 2 ) f (n/b 2 ) FG KTuEA, TU Ilmenau Effiziente Algorithmen Sommersemester

19 Master-Theorem Aus der Regularitätsbedingung gewinnen wir: f (n/b) c a f (n) ( c ) 2 f (n/b 2 ) f (n) a. f (n/b i ) ( c a ) i f (n), also: FG KTuEA, TU Ilmenau Effiziente Algorithmen Sommersemester

20 Master-Theorem B 1 (n) = a i f (n/b i ) 0 i<l ( c ) i a i f (n) a 0 i<l = 0 i<l = f (n) c i f (n) 0 i<l = O(f (n)), c i weil 0 i<l ci = 1 cl 1 c = O(1). FG KTuEA, TU Ilmenau Effiziente Algorithmen Sommersemester

21 Master-Theorem Satz (Das Master-Theorem) { g, falls n =1 Es gelte B(n) a B(n/b)+f (n), sonst, wobei b > 1 und a ganzzahlige Konstante sind. Dann gilt für n = b l : 1 Falls f (n) =O(n α ) mit α< log b a, dann ist B(n) =O(n log b a ). 2 Falls f (n) =O(n log b a ), dann ist B(n) =O(n log b a log n). 3 Falls f (n) = Ω(n α ) mit α> log b a und f (n) a c konstant, dann ist B(n) = O(f (n)). f (n/b), für c < 1 FG KTuEA, TU Ilmenau Effiziente Algorithmen Sommersemester

22 Master-Theorem Erweiterungen: Dieselben Formeln gelten für: Beliebige n, nicht nur n = b l. Verallgemeinerte Relation B(n) a B(n )+f (n), n n/b + d. b > 1 nicht ganzzahlig. Analoge untere Schranken. Genaueres im Buch von Cormen, Leiserson, Rivest und Stein. FG KTuEA, TU Ilmenau Effiziente Algorithmen Sommersemester

23 Quicksort 1.5 Quicksort (Hoare 1 ) Neue Analyse Input: Folge/Array (a 1,..., a n ). Falls n = 1, Ausgabe (a 1 ). Falls n = 2, sortiere mit einem Vergleich. Sonst: Wähle Element x {a 1,..., a n } als Pivotelement oder partitionierendes Element. (Z.B.: x = a 1 oder x = a i mit i zufällig.) Zerlege (a 1,..., a n ) in eine Teilfolge b 1,..., b p 1, alle x, in das Element x, und eine Teilfolge c p+1,..., c n, alle x. Sortiere diese beiden Folgen rekursiv, Ergebnis (d 1,..., d p 1 ) und (e p+1,..., e n ). Ausgabe: Folge/Array (d 1,..., d p 1, x, e p+1,..., e n ). FG KTuEA, TU Ilmenau Effiziente Algorithmen Sommersemester

24 Quicksort 1 C. A. R. Hoare ( 1934), brit. Informatiker, erfand Quicksort & Korrektheitskalkül. I conclude that there are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies and the other way is to make it so complicated that there are no obvious deficiencies. The first method is far more difficult. (Dankesrede für den Turingpreis 1980) I think Quicksort is the only really interesting algorithm that I ve ever developed. FG KTuEA, TU Ilmenau Effiziente Algorithmen Sommersemester

25 Quicksort Analyse: Wir nehmen an, alle Schlüssel sind verschieden. Wir wählen immer das erste Element als Pivotelement betrachten also deterministisches Quicksort. Weiter nehmen wir an, jede der n! Anordnungen sind gleich wahrscheinlich (Wahrscheinlichkeit 1/n!), und berechnen die erwartete Anzahl A(n) von Vergleichen. Falls n 1: kein Vergleich. Falls n = 2: 1 Vergleich. Sonst: FG KTuEA, TU Ilmenau Effiziente Algorithmen Sommersemester

26 Quicksort Es seien b 1 < < b n die Eingabe-Elemente in sortierter Reihenfolge. Es ist klar, dass b i und b j maximal einmal miteinander verglichen werden. (Wenn b i und b j verglichen werden, ist eines der beiden Pivotelement und wird nie mehr mit etwas anderem verglichen.) FG KTuEA, TU Ilmenau Effiziente Algorithmen Sommersemester

27 Quicksort C := Gesamtanzahl der Vergleiche. (Zufallsvariable, abhängig von der zufälligen Anordnung am Anfang.) Sei C = X ij, 1 i<j n wobei X ij = { 1, falls bi und b j verglichen werden 0, sonst. FG KTuEA, TU Ilmenau Effiziente Algorithmen Sommersemester

28 Quicksort Daraus: E(C) = 1 i<j n E(X ij )= 1 i<j n Pr(X ij = 1). (Das folgt aus der Linearität des Erwartungswertes, normalerweise geschrieben als E(X + Y )=E(X )+E(Y ).) Was ist Pr(X ij = 1) = Pr(b i und b j werden verglichen)? Wir beobachten den Algorithmus. Klar: Im Zuge der Rekursion werden durch Aufspalten immer kleinere Teillisten gebildet. Solange kein Element von I ij = {b i, b i+1,..., b j } Pivotelement wird, landen alle Elemente von I ij immer in derselben Teilliste (alle größer als Pivot oder alle kleiner als Pivot). FG KTuEA, TU Ilmenau Effiziente Algorithmen Sommersemester

29 Quicksort In dem Moment, in dem zum ersten Mal ein Element von I ij partitionierendes Element wird, fällt die Entscheidung: Wenn dies b i oder b j ist, werden b i und b j verglichen. Wenn dies ein Element von {b i+1,..., b j 1 } ist, nicht (jetzt nicht, aber auch nicht später, da sie in verschiedenen Teillisten landen). Weil alle Elemente in I ij die gleiche Wahrscheinlichkeit haben, zuerst als Pivotelement gewählt zu werden, gilt Pr(b i und b j werden verglichen) = 2 I ij = 2 j i +1. Also: E(C) = 1 i<j n 2 j i +1. FG KTuEA, TU Ilmenau Effiziente Algorithmen Sommersemester

30 Quicksort 1 i<j n 2 j i +1 = 1 i n i<j n =2 2 2 j i +1 1 i n 2 k n i+1 1 i n 2 k n =2 n (H n 1) 2 n ln n 1 k = (2 ln 2) n log n < 1,3863n log n. 1 k FG KTuEA, TU Ilmenau Effiziente Algorithmen Sommersemester

31 Quicksort Dabei ist H n = n [ln n + 1 2, ln n + 1] (n-te harmonische Zahl). Satz Die durchschnittliche Anzahl von Vergleichen von Quicksort auf einer Eingabe aus n verschiedenen Zahlen, die zufällig angeordnet ist, ist höchstens 2 n (H n 1) < 1,3863n log n. Für die, die es genau wissen wollen: E(C) = 2(n + 1)H n 4n = (2 log 2 e)n log n Θ(n). FG KTuEA, TU Ilmenau Effiziente Algorithmen Sommersemester

32 Quicksort Variation: Randomisiertes Quicksort. Das Pivotelement wird jeweils zufällig gewählt. In diesem Fall ist die gleiche Analyse anwendbar. Aber: Es gibt keine worst-case-inputs mehr. Satz Wenn man das Pivot-Element stets zufällig wählt, ist auf einer beliebigen, festen Eingabe aus n verschiedenen Zahlen die erwartete Anzahl von Vergleichen, die Quicksort ausführt, höchstens 2 n (H n 1) < 1,3863n log n. (Siehe hierzu: Randomisierte Algorithmen.) FG KTuEA, TU Ilmenau Effiziente Algorithmen Sommersemester

33 Selektionsproblem 1.6 Das Selektionsproblem Gegeben ist eine Folge (a 1,..., a n ) von n Objekten aus einer totalen Ordnung (D,<) (in Array oder als Liste), sowie eine Zahl k, 1 k n. O.B.d.A.: Alle Einträge verschieden. Aufgabe Finde das Element der Folge, das Rang k hat, d. h. ein Objekt x in der Liste mit {i a i x} = k. Spezialfall: Der Median einer Folge mit n Einträgen ist das Element mit Rang n/2. Median({2, 4, 7, 9}) = 4, Median({4, 7, 9}) = 7. Einfache Lösung: Sortiere, mit Ergebnis (b 1,..., b n ), nun wähle x = b k. Kosten: n log n Vergleiche, Zeit O(n log n). FG KTuEA, TU Ilmenau Effiziente Algorithmen Sommersemester

34 Selektionsproblem Zunächst: Ein randomisierter Algorithmus für das Auswahlproblem. Quickselect (Hoare) Ansatz: Wie bei Quicksort. Gegeben: Folge (a 1,..., a n ), Zahl k, 1 k n. O.B.d.A.: Die a i sind verschieden. Falls n = 1, ist nichts zu tun. Falls n = 2, sortiere mit einem Vergleich, Ergebnis (b 1, b 2 ), gib Element b k zurück. FG KTuEA, TU Ilmenau Effiziente Algorithmen Sommersemester

35 Selektionsproblem Falls n 3: Wähle ein Element x aus {a 1,..., a n } als partitionierendes Element zufällig. Zerlege (a 1,..., a n ) mit n 1 Vergleichen in eine Teilfolge b 1,..., b p 1, alle < x, in das Element x, und eine Teilfolge c p+1,..., c n, alle > x. 1. Fall: k = p. Das Ergebnis ist x. 2. Fall: k < p. Finde (rekursiv) in (b 1,..., b p 1 ) das Element vom Rang k. 3. Fall: k > p. Finde (rekursiv) in (c p+1,..., c n ) das Element vom Rang k p. FG KTuEA, TU Ilmenau Effiziente Algorithmen Sommersemester

36 Selektionsproblem Korrektheit: Klar. Zu analysieren: (Erwartete) Rechenzeit. Wir analysieren die erwartete Anzahl von Vergleichen. Vorgehen: Wie bei Quicksort. Wieder ist die erwartete Anzahl von Vergleichen entscheidend. Eingabezahlen, sortiert: b 1 < < b n. C k = 1 i<j n X ij, wobei X ij = { 1, falls bi und b j verglichen werden 0, sonst. FG KTuEA, TU Ilmenau Effiziente Algorithmen Sommersemester

37 Selektionsproblem Was ist E(X ij )=Pr(X ij = 1) = Pr(b i und b j werden verglichen)? 1. Fall: k i < j: Es kommt darauf an, ob b i oder b j vor allen anderen Einträgen in {b k,..., b j } Pivot werden. Pr(X ij = 1) = 2 j k Fall: i < k < j: Es kommt darauf an, ob b i oder b j vor allen anderen Einträgen in {b i,..., b j } Pivot werden. Pr(X ij = 1) = 2 j i Fall: i < j k: Es kommt darauf an, ob b i oder b j vor allen anderen Einträgen in {b i,..., b k } Pivot werden. Pr(X ij = 1) = 2 k i+1. FG KTuEA, TU Ilmenau Effiziente Algorithmen Sommersemester

38 Selektionsproblem Also: E(C k )=2 ( k i<j n 1 j k i<k<j n 1 j i i<j k 1 k i+1 ). Erste und dritte Summe lassen sich leicht als n k bzw. k 1 abschätzen (Übung!). Zusammen: 2(n 1). In der Übung zeigen wir: Zusammen: E(C k ) 4n. 1 i<k<j n 1 j i+1 n. FG KTuEA, TU Ilmenau Effiziente Algorithmen Sommersemester

39 Selektionsproblem Satz Der Algorithmus Quickselect löst das Auswahlproblem und hat eine erwartete Vergleichsanzahl von 4n und eine erwartete Laufzeit von O(n). FG KTuEA, TU Ilmenau Effiziente Algorithmen Sommersemester

40 Selektionsproblem Mitteilung: (a) Eine genauere Analyse ergibt für α = k/n konstant eine erwartete Vergleichsanzahl von 2(1 + H(α) ln 2 + o(1))n < ( o(1)) n. Dabei ist H(α) = α log α (1 α) log(1 α) die binäre Entropie. Sie liegt zwischen 0 und 1; das Maximum 1 ist bei α = 1 2 nach dem Median entspricht., was der Suche (b) Die beste Schranke für die erwartete Vergleichsanzahl bei einem Algorithmus für das Auswahlproblem, nämlich 3 2n + o(n), erreicht ein anderer randomisierter Algorithmus (siehe Vorlesung Randomisierte Algorithmen ). FG KTuEA, TU Ilmenau Effiziente Algorithmen Sommersemester

Ideen der Informatik Suchen und Sortieren [Ordnung muss sein ] Kurt Mehlhorn Adrian Neumann viele Folien von Kostas Panagiotou

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

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

Randomisierte Algorithmen 2. Erste Beispiele

Randomisierte Algorithmen 2. Erste Beispiele Randomisierte Algorithmen Randomisierte Algorithmen 2. Erste Beispiele Thomas Worsch Fakultät für Informatik Karlsruher Institut für Technologie Wintersemester 2016/2017 1 / 35 Randomisierter Identitätstest

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

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

Entscheidungsbäume. Definition Entscheidungsbaum. Frage: Gibt es einen Sortieralgorithmus mit o(n log n) Vergleichen?

Entscheidungsbäume. Definition Entscheidungsbaum. Frage: Gibt es einen Sortieralgorithmus mit o(n log n) Vergleichen? Entscheidungsbäume Frage: Gibt es einen Sortieralgorithmus mit o(n log n) Vergleichen? Definition Entscheidungsbaum Sei T ein Binärbaum und A = {a 1,..., a n } eine zu sortierenden Menge. T ist ein Entscheidungsbaum

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

Programmieren I. Kapitel 7. Sortieren und Suchen

Programmieren I. Kapitel 7. Sortieren und Suchen Programmieren I Kapitel 7. Sortieren und Suchen Kapitel 7: Sortieren und Suchen Ziel: Varianten der häufigsten Anwendung kennenlernen Ordnung Suchen lineares Suchen Binärsuche oder Bisektionssuche Sortieren

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

Übersicht. Datenstrukturen und Algorithmen Vorlesung 5: Rekursionsgleichungen (K4) Übersicht. Binäre Suche. Joost-Pieter Katoen. 20.

Übersicht. Datenstrukturen und Algorithmen Vorlesung 5: Rekursionsgleichungen (K4) Übersicht. Binäre Suche. Joost-Pieter Katoen. 20. Übersicht Datenstrukturen und Algorithmen Vorlesung 5: (K4) Joost-Pieter Katoen Lehrstuhl für Informatik 2 Software Modeling and Verification Group http://www-i2.informatik.rwth-aachen.de/i2/dsal12/ 20.

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

JAVA - Suchen - Sortieren

JAVA - Suchen - Sortieren Übungen Informatik I JAVA - Suchen - Sortieren http://www.fbi-lkt.fh-karlsruhe.de/lab/info01/tutorial Übungen Informatik 1 Folie 1 Inhalt Suchen/Sortieren binary search mergesort bubblesort Übungen Informatik

Mehr

Datenstrukturen & Algorithmen

Datenstrukturen & Algorithmen Datenstrukturen & Algorithmen Matthias Zwicker Universität Bern Frühling 2010 Übersicht Dynamische Programmierung Einführung Ablaufkoordination von Montagebändern Längste gemeinsame Teilsequenz Optimale

Mehr

Übungsblatt 1. f(n) = f(n) = O(g(n)) g(n) = O(f(n)) Zeigen oder widerlegen Sie: 3 n = Θ(2 n ) Aufgabe 1.2 Gegeben sei die folgende Funktion:

Übungsblatt 1. f(n) = f(n) = O(g(n)) g(n) = O(f(n)) Zeigen oder widerlegen Sie: 3 n = Θ(2 n ) Aufgabe 1.2 Gegeben sei die folgende Funktion: Übungsblatt 1 Aufgabe 1.1 Beweisen oder widerlegen Sie, dass für die im Folgenden definierte Funktion f(n) die Beziehung f(n) = Θ(n 4 ) gilt. Beachten Sie, dass zu einem vollständigen Beweis gegebenenfalls

Mehr

Datenstrukturen und Algorithmen

Datenstrukturen und Algorithmen Joost-Pieter Katoen Datenstrukturen und Algorithmen 1/32 Datenstrukturen und Algorithmen Vorlesung 7: Sortieren (K2) Joost-Pieter Katoen Lehrstuhl für Informatik 2 Software Modeling and Verification Group

Mehr

Algorithmen und Datenstrukturen Wintersemester 2004/ November T(n) = T(n a) + T(a) + n

Algorithmen und Datenstrukturen Wintersemester 2004/ November T(n) = T(n a) + T(a) + n Lehrstuhl für Praktische Informatik III Norman May B6, 29, Raum C0.05 68131 Mannheim Telefon: (0621) 181 2517 Email: [email protected] Matthias Brantner B6, 29, Raum C0.05 68131 Mannheim

Mehr

MATHEMATISCHE ANALYSE VON ALGORITHMEN

MATHEMATISCHE ANALYSE VON ALGORITHMEN MATHEMATISCHE ANALYSE VON ALGORITHMEN Michael Drmota Institut für Diskrete Mathematik und Geometrie, TU Wien [email protected] www.dmg.tuwien.ac.at/drmota/ Ringvorlesung SS 2008, TU Wien Algorithmus

Mehr

1. Musterlösung. Problem 1: Average-case-Laufzeit vs. Worst-case-Laufzeit

1. Musterlösung. Problem 1: Average-case-Laufzeit vs. Worst-case-Laufzeit Universität Karlsruhe Algorithmentechnik Fakultät für Informatik WS 06/07 ITI Wagner Musterlösung Problem : Average-case-Laufzeit vs Worst-case-Laufzeit pt (a) Folgender Algorithmus löst das Problem der

Mehr

Sortierverfahren für Felder (Listen)

Sortierverfahren für Felder (Listen) Sortierverfahren für Felder (Listen) Generell geht es um die Sortierung von Daten nach einem bestimmten Sortierschlüssel. Es ist auch möglich, daß verschiedene Daten denselben Sortierschlüssel haben. Es

Mehr

Algorithmentheorie Randomisierung. Robert Elsässer

Algorithmentheorie Randomisierung. Robert Elsässer Algorithmentheorie 03 - Randomisierung Robert Elsässer Randomisierung Klassen von randomisierten Algorithmen Randomisierter Quicksort Randomisierter Primzahltest Kryptographie 2 1. Klassen von randomisierten

Mehr

5.4 Das Rucksackproblem

5.4 Das Rucksackproblem Problemstellung: 5.4 Das Rucksackproblem Eingabe: Ganzzahlige Volumina a 1,..., a n > 0, Nutzenwerte c 1,..., c n > 0, ganzzahlige Volumenschranke b. Aufgabe: Packe die Objekte in einen Rucksack von Volumen

Mehr

16. All Pairs Shortest Path (ASPS)

16. All Pairs Shortest Path (ASPS) . All Pairs Shortest Path (ASPS) All Pairs Shortest Path (APSP): Eingabe: Gewichteter Graph G=(V,E) Ausgabe: Für jedes Paar von Knoten u,v V die Distanz von u nach v sowie einen kürzesten Weg a b c d e

Mehr

Kapitel 6 Elementare Sortieralgorithmen

Kapitel 6 Elementare Sortieralgorithmen Kapitel 6 Elementare Sortieralgorithmen Ziel: Kennenlernen elementarer Sortierverfahren und deren Effizienz Zur Erinnerung: Das Sortier-Problem Gegeben: Folge A von n Elementen a 1, a 2,..., a n ; Eine

Mehr

Grundlagen der Programmierung 2. Sortierverfahren

Grundlagen der Programmierung 2. Sortierverfahren Grundlagen der Programmierung 2 Sortierverfahren Prof. Dr. Manfred Schmidt-Schauÿ Künstliche Intelligenz und Softwaretechnologie 30. Mai 2006 Sortieren Ziel: Bringe Folge von Objekten in eine Reihenfolge

Mehr

Binäre Suchbäume. Mengen, Funktionalität, Binäre Suchbäume, Heaps, Treaps

Binäre Suchbäume. Mengen, Funktionalität, Binäre Suchbäume, Heaps, Treaps Binäre Suchbäume Mengen, Funktionalität, Binäre Suchbäume, Heaps, Treaps Mengen n Ziel: Aufrechterhalten einer Menge (hier: ganzer Zahlen) unter folgenden Operationen: Mengen n Ziel: Aufrechterhalten einer

Mehr

T (n) = max. g(x)=n t(n) S(n) = max. g(x)=n s(n)

T (n) = max. g(x)=n t(n) S(n) = max. g(x)=n s(n) Beim Logarithmischen Kostenmaß wird, im Gegensatz zum EKM, die Stelligkeit der Werte berücksichtigt und mit in die Laufzeit eingerechnet. Beispiel: R1 := R2 (R3), wobei R2 den Wert 5, R3 den Wert 10 und

Mehr

WS 2009/10. Diskrete Strukturen

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

Mehr

Suchen und Sortieren (Die klassischen Algorithmen)

Suchen und Sortieren (Die klassischen Algorithmen) Suchen und Sortieren (Die klassischen Algorithmen) Lineare Suche und Binäre Suche (Vorbedingung und Komplexität) Sortieralgorithmen (allgemein) Direkte Sortierverfahren (einfach aber langsam) Schnelle

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

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

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

Mehr

Beispiellösungen zu den Übungen Datenstrukturen und Algorithmen SS 2008 Blatt 6

Beispiellösungen zu den Übungen Datenstrukturen und Algorithmen SS 2008 Blatt 6 Robert Elsässer u.v.a. Paderborn, 29. Mai 2008 Beispiellösungen zu den Übungen Datenstrukturen und Algorithmen SS 2008 Blatt 6 Aufgabe 1 (6 Punkte): Zunächst sollte klar sein, daß ein vollständiger Binärer

Mehr

Abschnitt 18: Effizientes Suchen in Mengen

Abschnitt 18: Effizientes Suchen in Mengen Abschnitt 18: Effizientes Suchen in Mengen 18. Effizientes Suchen in Mengen 18.1 Vollständig ausgeglichene binäre Suchbäume 18.2 AVL-Bäume 18.3 Operationen auf AVL-Bäumen 18.4 Zusammenfassung 18 Effizientes

Mehr

Informatik I 1. Kapitel. Einführung in Algorithmen und Datenstrukturen. Einführung in Algorithmen. Einführung in Algorithmen.

Informatik I 1. Kapitel. Einführung in Algorithmen und Datenstrukturen. Einführung in Algorithmen. Einführung in Algorithmen. Informatik I 1. Kapitel Rainer Schrader Einführung in Algorithmen und Datenstrukturen Zentrum für Angewandte Informatik Köln 16. Juli 008 1 / 1 / 1 Einführung in Algorithmen Einführung in Algorithmen Gliederung

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Wintersemester 202/3 24. Vorlesung Amortisierte Analyse Prof. Dr. Alexander Wolff Lehrstuhl für Informatik I Hash-Tabellen Frage: Ziel: Problem: Lösung: Wie groß macht man

Mehr

Datenstrukturen & Algorithmen

Datenstrukturen & Algorithmen Datenstrukturen & Algorithmen Matthias Zwicker Universität Bern Frühling 2010 Übersicht Binäre Suchbäume Einführung und Begriffe Binäre Suchbäume 2 Binäre Suchbäume Datenstruktur für dynamische Mengen

Mehr

Folge 13 - Quicksort

Folge 13 - Quicksort Für Abiturienten Folge 13 - Quicksort 13.1 Grundprinzip des Quicksort Schritt 1 Gegeben ist ein unsortierter Array von ganzen Zahlen. Ein Element des Arrays wird nun besonders behandelt, es wird nämlich

Mehr

Algorithmen und Datenstrukturen 1

Algorithmen und Datenstrukturen 1 Algorithmen und Datenstrukturen 1 4. Vorlesung Peter F. Stadler Universität Leipzig Institut für Informatik [email protected] 4. Sortierverfahren Elementare Sortierverfahren - Sortieren durch

Mehr

Klausur Algorithmen und Datenstrukturen

Klausur Algorithmen und Datenstrukturen Technische Universität Braunschweig Sommersemester 2013 IBR - Abteilung Algorithmik Prof. Dr. Sándor Fekete Dr. Christiane Schmidt Stephan Friedrichs Klausur Algorithmen und Datenstrukturen 22.08.2013

Mehr

Vom Leichtesten zum Schwersten Sortieralgorithmen

Vom Leichtesten zum Schwersten Sortieralgorithmen Aktivität 7 Vom Leichtesten zum Schwersten Sortieralgorithmen Zusammenfassung Häufig verwendet man Computer dazu Listen von Elementen in eine bestimmte Ordnung zu bringen. So kann man beispielsweise Namen

Mehr

Was bisher geschah. 1. Zerlegung in monotone Polygone 2. Triangulierung der monotonen Teilpolygone

Was bisher geschah. 1. Zerlegung in monotone Polygone 2. Triangulierung der monotonen Teilpolygone Was bisher geschah Motivation, Beispiele geometrische Objekte im R 2 : Punkt, Gerade, Halbebene, Strecke, Polygon, ebene Zerlegung in Regionen (planare Graphen) maschinelle Repräsentation geometrischer

Mehr

Asymptotische Laufzeitanalyse: Beispiel

Asymptotische Laufzeitanalyse: Beispiel Asyptotische Laufzeitanalyse: n = length( A ) A[j] = x GZ Algorithen u. Datenstrukturen 1 31.10.2013 Asyptotische Laufzeitanalyse: n = length( A ) A[j] = x GZ Algorithen u. Datenstrukturen 2 31.10.2013

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

2 i. i=0. und beweisen Sie mittels eines geeigneten Verfahrens die Korrektheit der geschlossenen Form.

2 i. i=0. und beweisen Sie mittels eines geeigneten Verfahrens die Korrektheit der geschlossenen Form. für Informatik Prof. aa Dr. Ir. Joost-Pieter Katoen Christian Dehnert, Friedrich Gretz, Benjamin Kaminski, Thomas Ströder Tutoraufgabe (Vollständige Induktion): Finden Sie eine geschlossene Form für die

Mehr

5.2 Das All-Pairs-Shortest-Paths-Problem (APSP-Problem) Kürzeste Wege zwischen allen Knoten. Eingabe: Gerichteter Graph G =(V, E, c)

5.2 Das All-Pairs-Shortest-Paths-Problem (APSP-Problem) Kürzeste Wege zwischen allen Knoten. Eingabe: Gerichteter Graph G =(V, E, c) 5.2 Das All-Pairs-Shortest-Paths-Problem (APSP-Problem) Kürzeste Wege zwischen allen Knoten. Eingabe: Gerichteter Graph G =(V, E, c) mit V = {1,...,n} und E {(v, w) 1 apple v, w apple n, v 6= w}. c : E!

Mehr

INSTITUT FÜR THEORETISCHE INFORMATIK, PROF. SANDERS

INSTITUT FÜR THEORETISCHE INFORMATIK, PROF. SANDERS Julian Arz, Timo Bingmann, Sebastian Schlag INSTITUT FÜR THEORETISCHE INFORMATIK, PROF. SANDERS 1 KIT Julian Universität Arz, des Timo LandesBingmann, Baden-Württemberg Sebastian und Schlag nationales

Mehr

Effiziente Algorithmen und Datenstrukturen I. Kapitel 10: Lineare Algebra

Effiziente Algorithmen und Datenstrukturen I. Kapitel 10: Lineare Algebra Effiziente Algorithmen und Datenstrukturen I Kapitel 10: Lineare Algebra Christian Scheideler WS 2008 19.02.2009 Kapitel 10 1 Überblick Notation Arithmetik auf großen Zahlen (Addition und Multiplikation)

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

Datenstrukturen & Algorithmen Lösungen zu Blatt 6 FS 14

Datenstrukturen & Algorithmen Lösungen zu Blatt 6 FS 14 Eidgenössische Technische Hochschule Zürich Ecole polytechnique fédérale de Zurich Politecnico federale di Zurigo Federal Institute of Technology at Zurich Institut für Theoretische Informatik 2. April

Mehr

Randomisierte Algorithmen

Randomisierte Algorithmen Randomisierte Algorithmen Randomisierte Algorithmen 5. Zwei spieltheoretische Aspekte Thomas Worsch Fakultät für Informatik Karlsruher Institut für Technologie Wintersemester 2015/2016 1 / 36 Überblick

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

SS11 Effiziente Algorithmen 5. Kapitel: Dynamische Programmierung

SS11 Effiziente Algorithmen 5. Kapitel: Dynamische Programmierung SS11 Effiziente Algorithmen 5. Kapitel: Dynamische Programmierung Martin Dietzfelbinger Juni/Juli 2011 FG KTuEA, TU Ilmenau Effiziente Algorithmen SS11 Kapitel 5 Kapitel 5: Dynamische Programmierung Typische

Mehr

Programmiertechnik II

Programmiertechnik II Analyse von Algorithmen Algorithmenentwurf Algorithmen sind oft Teil einer größeren Anwendung operieren auf Daten der Anwendung, sollen aber unabhängig von konkreten Typen sein Darstellung der Algorithmen

Mehr

Kap. 4.4: B-Bäume Kap. 4.5: Dictionaries in der Praxis

Kap. 4.4: B-Bäume Kap. 4.5: Dictionaries in der Praxis Kap. 4.4: B-Bäume Kap. 4.5: Dictionaries in der Praxis Professor Dr. Lehrstuhl für Algorithm Engineering, LS11 Fakultät für Informatik, TU Dortmund 13./14. VO DAP2 SS 2009 2./4. Juni 2009 1 2. Übungstest

Mehr

S=[n] Menge von Veranstaltungen J S kompatibel mit maximaler Größe J

S=[n] Menge von Veranstaltungen J S kompatibel mit maximaler Größe J Greedy-Strategie Definition Paradigma Greedy Der Greedy-Ansatz verwendet die Strategie 1 Top-down Auswahl: Bestimme in jedem Schritt eine lokal optimale Lösung, so dass man eine global optimale Lösung

Mehr

Grundlagen der Programmierung

Grundlagen der Programmierung Grundlagen der Programmierung Algorithmen und Datenstrukturen Die Inhalte der Vorlesung wurden primär auf Basis der angegebenen Literatur erstellt. Darüber hinaus sind viele Teile direkt aus der Vorlesung

Mehr

Übung zur Vorlesung Algorithmische Geometrie

Übung zur Vorlesung Algorithmische Geometrie Übung zur Vorlesung Algorithmische Geometrie Dipl.-Math. Bastian Rieck Arbeitsgruppe Computergraphik und Visualisierung Interdisziplinäres Zentrum für Wissenschaftliches Rechnen 8. Mai 2012 B. Rieck (CoVis)

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Martin Hofmann Sommersemester 2009 1 Überblick über die Vorlesung Was sind Algorithmen, wieso Algorithmen? Ein Algorithmus ist eine genau festgelegte Berechnungsvorschrift,

Mehr

Algorithmen und Datenstrukturen 1

Algorithmen und Datenstrukturen 1 Algorithmen und Datenstrukturen 1 5. Vorlesung Martin Middendorf / Peter F. Stadler Universität Leipzig Institut für Informatik [email protected] [email protected] Quick-Sort

Mehr

Literatur. Dominating Set (DS) Dominating Sets in Sensornetzen. Problem Minimum Dominating Set (MDS)

Literatur. Dominating Set (DS) Dominating Sets in Sensornetzen. Problem Minimum Dominating Set (MDS) Dominating Set 59 Literatur Dominating Set Grundlagen 60 Dominating Set (DS) M. V. Marathe, H. Breu, H.B. Hunt III, S. S. Ravi, and D. J. Rosenkrantz: Simple Heuristics for Unit Disk Graphs. Networks 25,

Mehr

Geometrische Algorithmen

Geometrische Algorithmen Geometrische Algorithmen Bin Hu Algorithmen und Datenstrukturen 2 Arbeitsbereich für Algorithmen und Datenstrukturen Institut für Computergraphik und Algorithmen Technische Universität Wien Einführung

Mehr

Informatik I 4. Kapitel Suchen in sequentiellen Listen

Informatik I 4. Kapitel Suchen in sequentiellen Listen Informatik I 4. Kapitel Rainer Schrader Zentrum für Angewandte Informatik Köln 21. Mai 2008 1 / 55 2 / 55 Szenario Suchen in Daten gehört zu den wichtigsten Operationen etwa Suchen nach: Stichworten in

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

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

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

Mehr

Bayes sches Lernen: Übersicht

Bayes sches Lernen: Übersicht Bayes sches Lernen: Übersicht Bayes sches Theorem MAP, ML Hypothesen MAP Lernen Minimum Description Length Principle Bayes sche Klassifikation Naive Bayes Lernalgorithmus Teil 5: Naive Bayes + IBL (V.

Mehr

Datenstrukturen. Sommersemester Kapitel 1: Motivation / Grundlagen. Steffen Lange

Datenstrukturen. Sommersemester Kapitel 1: Motivation / Grundlagen. Steffen Lange Datenstrukturen Sommersemester 2010 Steffen Lange 1/1, Folie 1 2010 Prof. Steffen Lange - HDa/FbI - Datenstrukturen Organisatorisches Vorlesung wöchentlich; zwei Blöcke Folien im Netz (/* bitte zur Vorlesung

Mehr

Sortierverfahren. Sortierverfahren für eindimensionale Arrays

Sortierverfahren. Sortierverfahren für eindimensionale Arrays Sortierverfahren Sortierverfahren Sortieren durch Einfügen Sortieren durch Auswählen Sortieren durch Vertauschen (Bubblesort) Quicksort Sortierverfahren für eindimensionale Arrays 1 Gegeben ist eine beliebige

Mehr

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

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

Mehr

Algorithmen und Datenstrukturen 1

Algorithmen und Datenstrukturen 1 Algorithmen und Datenstrukturen 1 2. Vorlesung Prof. Dr. Peter F. Stadler Universität Leipzig Institut für Informatik [email protected] Einfache Suchverfahren Lineare Listen Sequentielle Suche

Mehr

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

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

Mehr

Algorithmen und Datenstrukturen (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

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

Logik für Informatiker

Logik für Informatiker Vorlesung Logik für Informatiker 7. Aussagenlogik Analytische Tableaus Bernhard Beckert Universität Koblenz-Landau Sommersemester 2006 Logik für Informatiker, SS 06 p.1 Der aussagenlogische Tableaukalkül

Mehr

3.2 Binäre Suche. Usr/local/www/ifi/fk/menschen/schmid/folien/infovk.ppt 1

3.2 Binäre Suche. Usr/local/www/ifi/fk/menschen/schmid/folien/infovk.ppt 1 3.2 Binäre Suche Beispiel 6.5.1: Intervallschachtelung (oder binäre Suche) (Hier ist n die Anzahl der Elemente im Feld!) Ein Feld A: array (1..n) of Integer sei gegeben. Das Feld sei sortiert, d.h.: A(i)

Mehr

Kostenmaße. F3 03/04 p.188/395

Kostenmaße. F3 03/04 p.188/395 Kostenmaße Bei der TM nur ein Kostenmaß: Ein Schritt (Konfigurationsübergang) kostet eine Zeiteinheit; eine Bandzelle kostet eine Platzeinheit. Bei der RAM zwei Kostenmaße: uniformes Kostenmaß: (wie oben);

Mehr

18 Höhere Ableitungen und Taylorformel

18 Höhere Ableitungen und Taylorformel 8 HÖHERE ABLEITUNGEN UND TAYLORFORMEL 98 8 Höhere Ableitungen und Taylorformel Definition. Sei f : D R eine Funktion, a D. Falls f in einer Umgebung von a (geschnitten mit D) differenzierbar und f in a

Mehr

Teile und Herrsche Teil 2

Teile und Herrsche Teil 2 Teile und Herrsche Teil 2 binär Suchen und schnell Multiplizieren Markus Fleck Manuel Mauky Hochschule Zittau/Görlitz 19. April 2009 Suchen in langen Listen (0, 1, 2, 7, 8, 9, 9, 13, 13, 14, 14, 14, 16,

Mehr

MafI I: Logik & Diskrete Mathematik (F. Hoffmann)

MafI I: Logik & Diskrete Mathematik (F. Hoffmann) Lösungen zum 14. und letzten Aufgabenblatt zur Vorlesung MafI I: Logik & Diskrete Mathematik (F. Hoffmann) 1. Ungerichtete Graphen (a) Beschreiben Sie einen Algorithmus, der algorithmisch feststellt, ob

Mehr

Die Komplexitätsklassen P und NP

Die Komplexitätsklassen P und NP Die Komplexitätsklassen P und NP Prof. Dr. Berthold Vöcking Lehrstuhl Informatik 1 Algorithmen und Komplexität RWTH Aachen 3. Dezember 2009 Berthold Vöcking, Informatik 1 () Vorlesung Berechenbarkeit und

Mehr

Binary Decision Diagrams (Einführung)

Binary Decision Diagrams (Einführung) Binary Decision Diagrams (Einführung) Binary Decision Diagrams (BDDs) sind bestimmte Graphen, die als Datenstruktur für die kompakte Darstellung von booleschen Funktionen benutzt werden. BDDs wurden von

Mehr

3. Kombinatorik und Wahrscheinlichkeit

3. Kombinatorik und Wahrscheinlichkeit 3. Kombinatorik und Wahrscheinlichkeit Es geht hier um die Bestimmung der Kardinalität endlicher Mengen. Erinnerung: Seien A, B, A 1,..., A n endliche Mengen. Dann gilt A = B ϕ: A B bijektiv Summenregel:

Mehr

7. Triangulation von einfachen Polygonen

7. Triangulation von einfachen Polygonen 1 7. Triangulation von einfachen Polygonen 2 Ziel Bessere Laufzeit als O(n log n) durch schnelleres Berechnen der Trapezzerlegung des Polygons. 3 Idee Finde Methode, den Anfangspunkt einer Strecke in der

Mehr

Fragen für die Klausuren

Fragen für die Klausuren Fragen für die Klausuren Vom Quellcode zum ausführbaren Programm Was ist ein Quellcode? Ist der Quellcode von einem Programm auf unterschiedlichen Rechner gleich? Nennen Sie drei Programmiersprachen. Was

Mehr

Lineares Programmieren

Lineares Programmieren Vorlesung Algorithmische Geometrie LEHRSTUHL FÜR ALGORITHMIK I INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK Martin Nöllenburg 03.05.2011 Nachtrag Art Gallery Problem Lässt sich der Triangulierungs-Algorithmus

Mehr

Algorithmik - Kompaktkurs

Algorithmik - Kompaktkurs Algorithmik - Kompaktkurs Sommersemester 2012 Steffen Lange 0/1, Folie 1 2012 Prof. Steffen Lange - HDa/FbI - Algorithmik Organisatorisches Vorlesung Folien im Netz (/* bitte zur Vorlesung mitbringen */)

Mehr

Streaming Data: Das Modell

Streaming Data: Das Modell Streaming Data: Das Modell Berechnungen, bei fortlaufend einströmenden Daten (x t t 0), sind in Echtzeit zu erbringen. Beispiele sind: - Verkehrsmessungen im Internet, - Datenanalyse in der Abwehr einer

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

23. November Betweenness Centrality Closeness Centrality. H. Meyerhenke: Algorithmische Methoden zur Netzwerkanalyse 108

23. November Betweenness Centrality Closeness Centrality. H. Meyerhenke: Algorithmische Methoden zur Netzwerkanalyse 108 23. November 2011 Betweenness Centrality Closeness Centrality H. Meyerhenke: Algorithmische Methoden zur Netzwerkanalyse 108 Betweenness Centrality Grundlegende Idee: Ein Knoten ist wichtig, wenn er auf

Mehr

Programmiertechnik II

Programmiertechnik II Bäume Symboltabellen Suche nach Werten (items), die unter einem Schlüssel (key) gefunden werden können Bankkonten: Schlüssel ist Kontonummer Flugreservierung: Schlüssel ist Flugnummer, Reservierungsnummer,...

Mehr

4 Diskrete Wahrscheinlichkeitsverteilungen

4 Diskrete Wahrscheinlichkeitsverteilungen 4 Diskrete Wahrscheinlichkeitsverteilungen 4.1 Wahrscheinlichkeitsräume, Ereignisse und Unabhängigkeit Definition: Ein diskreter Wahrscheinlichkeitsraum ist ein Paar (Ω, Pr), wobei Ω eine endliche oder

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

Algorithmen II Vorlesung am

Algorithmen II Vorlesung am Algorithmen II Vorlesung am 0..0 Minimale Schnitte in Graphen INSTITUT FÜR THEORETISCHE INFORMATIK PROF. DR. DOROTHEA WAGNER KIT Universität des Landes Baden-Württemberg und Algorithmen nationales Forschungszentrum

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

3: Zahlentheorie / Primzahlen

3: Zahlentheorie / Primzahlen Stefan Lucks Diskrete Strukturen (WS 2009/10) 96 3: Zahlentheorie / Primzahlen 3: Zahlentheorie / Primzahlen Stefan Lucks Diskrete Strukturen (WS 2009/10) 97 Definition 37 (Teiler, Vielfache, Primzahlen,

Mehr