4. Übung zu Algorithmen I 17. Mai 2017

Größe: px
Ab Seite anzeigen:

Download "4. Übung zu Algorithmen I 17. Mai 2017"

Transkript

1 4. Übung zu Algorithmen I 17. Mai 2017 Björn Kaidel bjoern.kaidel@kit.edu (mit Folien von Julian Arz, Timo Bingmann, Lisa Kohl, Christian Schulz, Sebastian Schlag und Christoph Striecks)

2 Organisatorisches Darf ich XYZ zum Lösen der Übungsaufgaben verwenden? Faustregel: Alles aus dem 1. Semester (z.b. GBI) und der Algorithmen VL erlaubt Bitte darauf hinweisen, wenn ihr spezielleren Sto aus dem ersten Semester verwendet.

3 Organisatorisches Darf ich XYZ zum Lösen der Übungsaufgaben verwenden? Faustregel: Alles aus dem 1. Semester (z.b. GBI) und der Algorithmen VL erlaubt Bitte darauf hinweisen, wenn ihr spezielleren Sto aus dem ersten Semester verwendet. Ausnahme: Aufgabe verbietet/verlangt bestimmte Algorithmen, Techniken,... Algorithmen, Techniken, etc. aus sonstigen Quellen nicht erlaubt

4 Organisatorisches Darf ich XYZ zum Lösen der Übungsaufgaben verwenden? Faustregel: Alles aus dem 1. Semester (z.b. GBI) und der Algorithmen VL erlaubt Bitte darauf hinweisen, wenn ihr spezielleren Sto aus dem ersten Semester verwendet. Ausnahme: Aufgabe verbietet/verlangt bestimmte Algorithmen, Techniken,... Algorithmen, Techniken, etc. aus sonstigen Quellen nicht erlaubt Tipp: Es kann sinnvoll sein, verschiedene Lösungsmöglichkeiten zu üben (z.b. Rekurrenzen nicht nur mit Master-Theorem lösen)

5 Klausur: Spickzettel Wie in den Vorjahren: Wir erlauben euch einen Spickzettel mit in die Klausur zu nehmen Ein DIN A4 Blatt Handgeschrieben Beidseitiges beschriften erlaubt Keine Einschränkung bzgl. Schriftgröÿe, Inhalt etc.

6 Inhalt Hashing Hashtabellen Anwendungen davon

7 Hashtabelle mit einfach verketteten Listen Schlüsseluniversum U Hashfunktion h : U {0,..., m 1} Beispiel: h(k 1 ) = 2, h(k 2 ) = h(k 3 ) = m-1 k 3 k 1 k 2

8 Problem: Gegeben: Folge A := a 1, a 2,..., a u von Zahlen Frage: enthält A Duplikate a i = a j für i j?

9 Problem: Gegeben: Folge A := a 1, a 2,..., a u von Zahlen Frage: enthält A Duplikate a i = a j für i j? Ansatz 1: Sortieren 9, 18, 42, 25, 33, 18, 104

10 Problem: Gegeben: Folge A := a 1, a 2,..., a u von Zahlen Frage: enthält A Duplikate a i = a j für i j? Ansatz 1: Sortieren 9, 18, 42, 25, 33, 18, 104 9, 18, 18, 25, 33, 42, 104

11 Problem: Gegeben: Folge A := a 1, a 2,..., a u von Zahlen Frage: enthält A Duplikate a i = a j für i j? Ansatz 1: Sortieren 9, 18, 42, 25, 33, 18, 104 9, 18, 18, 25, 33, 42, 104 Laufzeit: Ω(n log n) (Sortieren im Worst-Case)

12 Problem: Gegeben: Folge A := a 1, a 2,..., a u von Zahlen Frage: enthält A Duplikate a i = a j für i j? Ansatz 1: Sortieren 9, 18, 42, 25, 33, 18, 104 9, 18, 18, 25, 33, 42, 104 Laufzeit: Ω(n log n) (Sortieren im Worst-Case) Geht es besser?

13 Problem: Gegeben: Folge A := a 1, a 2,..., a u von Zahlen Frage: enthält A Duplikate a i = a j für i j? Ansatz 1: Sortieren 9, 18, 42, 25, 33, 18, 104 9, 18, 18, 25, 33, 42, 104 Laufzeit: Ω(n log n) (Sortieren im Worst-Case) Ansatz 2: Hashtabelle Hashtabelle mit m Slots und verketteten Listen Ziel: (erwartete) Laufzeit in O(n).

14 Beispiel 9, 18, 42, 25, 33, 18, 104 mit Hashfunktion h : a a mod

15 Beispiel 9, 18, 42, 25, 33, 18, 104 mit Hashfunktion h : a a mod

16 Beispiel 9, 18, 42, 25, 33, 18, 104 mit Hashfunktion h : a a mod

17 Beispiel 9, 18, 42, 25, 33, 18, 104 mit Hashfunktion h : a a mod

18 Beispiel 9, 18, 42, 25, 33, 18, 104 mit Hashfunktion h : a a mod

19 Beispiel 9, 18, 42, 25, 33, 18, 104 mit Hashfunktion h : a a mod

20 Beispiel 9, 18, 42, 25, 33, 18, 104 mit Hashfunktion h : a a mod

21 Beispiel 9, 18, 42, 25, 33, 18, 104 mit Hashfunktion h : a a mod schon enthalten!

22 Pseudocode 1: function hasduplicates(a : Sequence of N 0 ) : {true, false} 2: H := new HashTableWithChaining of N 0 with A slots 3: for all a A do 4: if H.nd(a) NIL then return true 5: H.insert(a) 6: return false

23 Laufzeitanalyse 1. Erzeugen der Hashtabelle

24 Laufzeitanalyse 1. Erzeugen der Hashtabelle alle Slots initialisieren: O(m)

25 Laufzeitanalyse 1. Erzeugen der Hashtabelle alle Slots initialisieren: O(m) 2. Finden und Einfügen

26 Laufzeitanalyse 1. Erzeugen der Hashtabelle alle Slots initialisieren: O(m) 2. Finden und Einfügen insert pro Element: O(1)

27 Laufzeitanalyse 1. Erzeugen der Hashtabelle alle Slots initialisieren: O(m) 2. Finden und Einfügen insert pro Element: O(1) nd pro Element: O(Listenlänge)

28 Wahl der Hashfunktion Problem: im Worst-Case ist nd pro Element in Θ(n) 3->Lösung: wähle Hashfunktion zufällig und zwar schlüssel-/datenunabhängig

29 Wahl der Hashfunktion Problem: im Worst-Case ist nd pro Element in Θ(n) Beispiel: a 17, 10, 38, 24, 31, 17, 94 : a mod 7 = 3 Es existieren für jede Probleminstanz schlechte Hashfunktionen 3->Lösung: wähle Hashfunktion zufällig und zwar schlüssel-/datenunabhängig Theorem aus der Vorlesung: A O(m) erwartete Anzahl kollidierender Elemente in O(1) Intuition: Wkt. schlechte Hashfunktion zu wählen klein

30 Wahl der Hashfunktion Problem: im Worst-Case ist nd pro Element in Θ(n) 3->Lösung: wähle Hashfunktion zufällig und zwar schlüssel-/datenunabhängig Theorem aus der Vorlesung: A O(m) erwartete Anzahl kollidierender Elemente in O(1) Intuition: Wkt. schlechte Hashfunktion zu wählen klein Also: erst Daten festlegen, dann Hashfunktion wählen Durchaus realistisch!

31 Universelles Hashing Problem: zufällige Hashfunktion ziehen teuer & schwierig Wie implementieren? Welche Struktur verwenden? Anzahl potentieller Funktionen riesig etc.

32 Universelles Hashing Problem: zufällige Hashfunktion ziehen teuer & schwierig Lösung: Wie implementieren? Welche Struktur verwenden? Anzahl potentieller Funktionen riesig etc. beschränke Wahl auf bestimmte Familie von Funktionen

33 Universelles Hashing Problem: zufällige Hashfunktion ziehen teuer & schwierig Lösung: Wie implementieren? Welche Struktur verwenden? Anzahl potentieller Funktionen riesig etc. beschränke Wahl auf bestimmte Familie von Funktionen H {h : U {0,..., m 1}} heiÿt universell, falls für alle x, y U mit x y und zufälligem h H: Pr[h(x) = h(y)] = 1 m

34 Universelles Hashing - Beispiel p Primzahl, U N u, a = (a 1,..., a u ) {0,..., p 1} u : h a : U {0,..., p 1}, x u a i x i i=1 mod p und H := {h a a {0,..., p 1} u }.

35 Universelles Hashing - Beispiel p Primzahl, U N u, a = (a 1,..., a u ) {0,..., p 1} u : h a : U {0,..., p 1}, x u a i x i i=1 mod p und H := {h a a {0,..., p 1} u }. u = 2: Für x, y N 2 mit x 1 y 1 gilt: a 0 x 0 + a 1 x 1 = a 0 y 0 + a 1 y 1 mod p

36 Universelles Hashing - Beispiel p Primzahl, U N u, a = (a 1,..., a u ) {0,..., p 1} u : h a : U {0,..., p 1}, x u a i x i i=1 mod p und H := {h a a {0,..., p 1} u }. u = 2: Für x, y N 2 mit x 1 y 1 gilt: a 0 x 0 + a 1 x 1 = a 0 y 0 + a 1 y 1 mod p a 1 = (a 0 y 0 a 0 x 0 )(x 1 y 1 ) 1 mod p

37 Universelles Hashing - Beispiel p Primzahl, U N u, a = (a 1,..., a u ) {0,..., p 1} u : h a : U {0,..., p 1}, x u a i x i i=1 mod p und H := {h a a {0,..., p 1} u }. u = 2: Für x, y N 2 mit x 1 y 1 gilt: a 0 x 0 + a 1 x 1 = a 0 y 0 + a 1 y 1 mod p a 1 = (a 0 y 0 a 0 x 0 )(x 1 y 1 ) 1 H universell! (wichtig: nur wenn p prim!) mod p

38 mit universellem Hashing h a : U {0,..., p 1}, x u a i x i i=1 mod p Hashfunktion zufällig wählen jetzt klar strukturiert und technisch umsetzbar!

39 mit universellem Hashing h a : U {0,..., p 1}, x u a i x i i=1 mod p Hashfunktion zufällig wählen jetzt klar strukturiert und technisch umsetzbar! Problem: Übersetzung der Daten zu Vektoren notwendig Aber: Problem tritt generell auf

40 mit universellem Hashing h a : U {0,..., p 1}, x u a i x i i=1 mod p Hashfunktion zufällig wählen jetzt klar strukturiert und technisch umsetzbar! Problem: Übersetzung der Daten zu Vektoren notwendig Aber: Problem tritt generell auf Allgemeine Lösung: Weiÿe den Daten eindeutige Keys zu, hashe dann die Keys Zuweisung Daten zu Keys ist injektiv Konkrete Lösung: stelle Elemente in Basis p dar

41 mit universellem Hashing Beispiel mit u = 3 und p = 7: 1. stelle Elemente in Basis p dar

42 mit universellem Hashing Beispiel mit u = 3 und p = 7: 1. stelle Elemente in Basis p dar Wie Binärdarstellung, nur zu anderer Basis z.b. 17 = (0, 2, 3)

43 mit universellem Hashing Beispiel mit u = 3 und p = 7: 1. stelle Elemente in Basis p dar Wie Binärdarstellung, nur zu anderer Basis z.b. 17 = (0, 2, 3) 2. ziehe a {0,..., p 1} 3 zufällig

44 mit universellem Hashing Beispiel mit u = 3 und p = 7: 1. stelle Elemente in Basis p dar Wie Binärdarstellung, nur zu anderer Basis z.b. 17 = (0, 2, 3) 2. ziehe a {0,..., p 1} 3 zufällig z.b. a = (1, 1, 1)

45 mit universellem Hashing Beispiel mit u = 3 und p = 7: 1. stelle Elemente in Basis p dar Wie Binärdarstellung, nur zu anderer Basis z.b. 17 = (0, 2, 3) 2. ziehe a {0,..., p 1} 3 zufällig z.b. a = (1, 1, 1) 3. verwende Hashtabelle mit Hashfunktion h a

46 mit universellem Hashing Beispiel mit u = 3 und p = 7: 1. stelle Elemente in Basis p dar Wie Binärdarstellung, nur zu anderer Basis z.b. 17 = (0, 2, 3) 2. ziehe a {0,..., p 1} 3 zufällig z.b. a = (1, 1, 1) 3. verwende Hashtabelle mit Hashfunktion h a z.b. 17, 10, 38, 24, 31, 17,

47 Laufzeitanalyse 1. Erzeugen der Hashtabelle alle Slots initialisieren: O(m) 2. Finden und Einfügen insert pro Element: O(1) nd pro Element: O(Listenlänge) für zufällige Hashfunktion: erwartet O(1)

48 Zusammenfassung Problem: Gegeben: Folge A := a 1, a 2,..., a u von Zahlen Frage: enthält A Duplikate a i = a j für i j? Ansatz 1: Sortieren 9, 18, 42, 25, 33, 18, 104 9, 18, 18, 25, 33, 42, 104 Laufzeit: Ω(n log n) (Sortieren im Worst-Case) Ansatz 2: Hashtabelle Hashtabelle mit m = Θ(n) Slots und verketteten Listen Laufzeit: erwartet O(n)

49 Bloom Filter Problem: Gegeben: Menge M von n Elementen der Gröÿe u Bit Frage: kommt Element in der Menge M vor? begrenzter Platz m u n Bit

50 Bloom Filter Problem: Gegeben: Menge M von n Elementen der Gröÿe u Bit Frage: kommt Element in der Menge M vor? begrenzter Platz m u n Bit Anwendungsbeispiele: Telefonnummernimport bei Messaging-Diensten Google Chrome Safe Browsing

51 Bloom Filter Problem: Gegeben: Menge M von n Elementen der Gröÿe u Bit Frage: kommt Element in der Menge M vor? begrenzter Platz m u n Bit Anwendungsbeispiele: Telefonnummernimport bei Messaging-Diensten Google Chrome Safe Browsing Gewünschte Operationen: insert(key k) contains(key k) : bool

52 Bloom Filter Problem: Gegeben: Menge M von n Elementen der Gröÿe u Bit Frage: kommt Element in der Menge M vor? begrenzter Platz m u n Bit Anwendungsbeispiele: Telefonnummernimport bei Messaging-Diensten Google Chrome Safe Browsing Gewünschte Operationen: insert(key k) contains(key k) : bool false: k nicht in der Menge

53 Bloom Filter Problem: Gegeben: Menge M von n Elementen der Gröÿe u Bit Frage: kommt Element in der Menge M vor? begrenzter Platz m u n Bit Anwendungsbeispiele: Telefonnummernimport bei Messaging-Diensten Google Chrome Safe Browsing Gewünschte Operationen: insert(key k) contains(key k) : bool false: k nicht in der Menge true: k mit groÿer Wahrscheinlichkeit in Menge

54 Bloom Filter Menge M mit n Elementen

55 Bloom Filter Menge M mit n Elementen k Hashfunktionen h 1,..., h k : {0, 1} u {0,..., m 1}

56 Bloom Filter Menge M mit n Elementen k Hashfunktionen h 1,..., h k : {0, 1} u {0,..., m 1} Bild der Hashfunktionen gleichverteilt

57 Bloom Filter Menge M mit n Elementen k Hashfunktionen h 1,..., h k : {0, 1} u {0,..., m 1} Bild der Hashfunktionen gleichverteilt Hashfunktionen unabhängig voneinander

58 Bloom Filter Menge M mit n Elementen k Hashfunktionen h 1,..., h k : {0, 1} u {0,..., m 1} Bild der Hashfunktionen gleichverteilt Hashfunktionen unabhängig voneinander Array A[0,..., m 1] von Bits

59 Bloom Filter Menge M mit n Elementen k Hashfunktionen h 1,..., h k : {0, 1} u {0,..., m 1} Bild der Hashfunktionen gleichverteilt Hashfunktionen unabhängig voneinander Array A[0,..., m 1] von Bits insert(x): 1. setze A[h i (x)] = 1 für alle i {1,..., k}

60 Bloom Filter Menge M mit n Elementen k Hashfunktionen h 1,..., h k : {0, 1} u {0,..., m 1} Bild der Hashfunktionen gleichverteilt Hashfunktionen unabhängig voneinander Array A[0,..., m 1] von Bits insert(x): 1. setze A[h i (x)] = 1 für alle i {1,..., k} contains(x): 1. wenn A[h i (x)] = 1 für alle i {1,..., k} true

61 Bloom Filter Menge M mit n Elementen k Hashfunktionen h 1,..., h k : {0, 1} u {0,..., m 1} Bild der Hashfunktionen gleichverteilt Hashfunktionen unabhängig voneinander Array A[0,..., m 1] von Bits insert(x): 1. setze A[h i (x)] = 1 für alle i {1,..., k} contains(x): 1. wenn A[h i (x)] = 1 für alle i {1,..., k} true 2. sonst false

62 Bloom Filter Beispiel k = 4 Hashfunktionen Array der Gröÿe m = 32 Bit

63 Bloom Filter Beispiel insert(x 1 ) x

64 Bloom Filter Beispiel contains(x 1 ) x 1 M?

65 Bloom Filter Beispiel contains(x 1 ) = true x 1 M?

66 Bloom Filter Beispiel contains(x 2 ) x 2 M?

67 Bloom Filter Beispiel contains(x 2 )= false x 2 M?

68 Bloom Filter Beispiel insert(x 2 ) x

69 Bloom Filter Beispiel contains(x 3 ) x 3 M?

70 Bloom Filter Beispiel contains(x 3 ) = true, obwohl x 3 M x 3 M?

71 Bloom Filter Wie wahrscheinlich sind false positives? Wahrscheinlichkeit für 1 an Stelle i: Pr[A[i] = 1 nach n Einfügungen]

72 Bloom Filter Wie wahrscheinlich sind false positives? Wahrscheinlichkeit für 1 an Stelle i: Pr[A[i] = 1 nach n Einfügungen] = 1 Pr[A[i] = 0 nach n Einfügungen]

73 Bloom Filter Wie wahrscheinlich sind false positives? Wahrscheinlichkeit für 1 an Stelle i: Pr[A[i] = 1 nach n Einfügungen] = 1 Pr[A[i] = 0 nach n Einfügungen] = 1 (1 1/m) kn

74 Bloom Filter Wie wahrscheinlich sind false positives? Wahrscheinlichkeit für 1 an Stelle i: Pr[A[i] = 1 nach n Einfügungen] = 1 Pr[A[i] = 0 nach n Einfügungen] = 1 (1 1/m) kn 1 e kn/m

75 Bloom Filter Wie wahrscheinlich sind false positives? Wahrscheinlichkeit für 1 an Stelle i: Pr[A[i] = 1 nach n Einfügungen] = 1 Pr[A[i] = 0 nach n Einfügungen] = 1 (1 1/m) kn 1 e kn/m Wahrscheinlichkeit für false positive: f + ( 1 e kn/m) k

76 Bloom Filter Beispiel: n = Objekte m = Bit k = 7 unabhängige Hashfunktionen

77 Bloom Filter Beispiel: n = Objekte m = Bit k = 7 unabhängige Hashfunktionen Wahrscheinlichkeit für false positive < 1%

78 Bloom Filter Beispiel: n = Objekte m = Bit k = 7 unabhängige Hashfunktionen Wahrscheinlichkeit für false positive < 1% Speicherplatz m/n = 10 Bit pro Objekt! unabhängig von der Gröÿe der Objekte!

79 Bloom Filter Beispiel: n = Objekte m = Bit k = 7 unabhängige Hashfunktionen Wahrscheinlichkeit für false positive < 1% Speicherplatz m/n = 10 Bit pro Objekt! unabhängig von der Gröÿe der Objekte! Vorteile: sehr wenig Speicherplatz! ziemlich schnell Nachteil: Fehler möglich

3. Übung Algorithmen I

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

4.4.1 Statisches perfektes Hashing. des Bildbereichs {0, 1,..., n 1} der Hashfunktionen und S U, S = m n, eine Menge von Schlüsseln.

4.4.1 Statisches perfektes Hashing. des Bildbereichs {0, 1,..., n 1} der Hashfunktionen und S U, S = m n, eine Menge von Schlüsseln. 4.4 Perfektes Hashing Das Ziel des perfekten Hashings ist es, für eine Schlüsselmenge eine Hashfunktion zu finden, so dass keine Kollisionen auftreten. Die Größe der Hashtabelle soll dabei natürlich möglichst

Mehr

Wie beim letzten Mal - bitte besucht: http://pingo.upb.de/549170 Ihr seid gleich wieder gefragt... Übung Algorithmen I 4.5.16 Lukas Barth lukas.barth@kit.edu (Mit Folien von Julian Arz, Timo Bingmann,

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

In vergleichsbasierten Suchbäumen wird nicht in Schlüssel hineingeschaut.

In vergleichsbasierten Suchbäumen wird nicht in Schlüssel hineingeschaut. Binäre Suchbäume Tries (Folie 182, Seite 58 im Skript) In vergleichsbasierten Suchbäumen wird nicht in Schlüssel hineingeschaut. In Tries entspricht die ite Verzweigung dem iten Zeichen des Schlüssels.

Mehr

Es sei a 2 und b 2a 1. Definition Ein (a, b)-baum ist ein Baum mit folgenden Eigenschaften:

Es sei a 2 und b 2a 1. Definition Ein (a, b)-baum ist ein Baum mit folgenden Eigenschaften: Binäre Suchbäume (a, b)-bäume (Folie 173, Seite 56 im Skript) Es sei a 2 und b 2a 1. Definition Ein (a, b)-baum ist ein Baum mit folgenden Eigenschaften: 1 Jeder Knoten hat höchstens b Kinder. 2 Jeder

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen 1 Algorithmen und Datenstrukturen Wintersemester 2015/16 12. Vorlesung Hashing Prof. Dr. Alexander Wolff Lehrstuhl für Informatik I 2 Übungen Begründen Sie grundsätzlich alle Behauptungen außer die Aufgabe

Mehr

Übung Algorithmen I

Übung Algorithmen I Übung Algorithmen I.6.5 Christoph Striecks Christoph.Striecks@kit.edu (Mit Folien von Julian Arz, Timo Bingmann und Sebastian Schlag.) Roadmap Hinweise zur Übungsklausur (Weitere) Traversierungen von Binärbäumen

Mehr

Algorithmen und Datenstrukturen SoSe 2008 in Trier. Henning Fernau Universität Trier

Algorithmen und Datenstrukturen SoSe 2008 in Trier. Henning Fernau Universität Trier Algorithmen und Datenstrukturen SoSe 2008 in Trier Henning Fernau Universität Trier fernau@uni-trier.de 1 Algorithmen und Datenstrukturen Gesamtübersicht Organisatorisches / Einführung Grundlagen: RAM,

Mehr

12. Übung Algorithmen I

12. Übung Algorithmen I 12. Ü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 12. Übung Algorithmen

Mehr

Wörterbucher. Das Wörterbuch 1 / 71

Wörterbucher. Das Wörterbuch 1 / 71 Wörterbucher Das Wörterbuch 1 / 71 Der abstrakte Datentyp Wörterbuch Ein Wörterbuch für eine gegebene Menge S besteht aus den folgenden Operationen: insert(x): Füge x zu S hinzu, d.h. setze S = S {x}.

Mehr

Kapitel 9 Suchalgorithmen

Kapitel 9 Suchalgorithmen Kapitel 9 Suchalgorithmen Suchverfahren: Verfahren, das in einem Suchraum nach Mustern oder Objekten mit bestimmten Eigenschaften sucht. Vielfältige Anwendungsbereiche für Suchverfahren: u.a. Suchen in

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

Hashing. Algorithmen und Datenstrukturen II 1

Hashing. Algorithmen und Datenstrukturen II 1 Hashing Algorithmen und Datenstrukturen II 1 Einführendes Beispiel Ein Pizza-Lieferservice in Bielefeld speichert die Daten seiner Kunden: Name, Vorname, Adresse und Telefonnummer Wenn ein Kunde seine

Mehr

4. Hashverfahren. geg.: Wertebereich D, Schlüsselmenge S = {s 1,..., s n } D. Menge A von Speicheradressen; oft: A = {0,..., m 1}

4. Hashverfahren. geg.: Wertebereich D, Schlüsselmenge S = {s 1,..., s n } D. Menge A von Speicheradressen; oft: A = {0,..., m 1} 105 4. Hashverfahren geg.: Wertebereich D, Schlüsselmenge S = {s 1,..., s n } D Menge A von Speicheradressen; oft: A = {0,..., m 1} jedes Speicherverfahren realisiert h : D A mögliche Implementierungen

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

Ü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

Die mittlere Zeit zum Auffinden eines Elements in einer Hash-Tabelle beträgt, unter realistischen Annahmen, O(1).

Die mittlere Zeit zum Auffinden eines Elements in einer Hash-Tabelle beträgt, unter realistischen Annahmen, O(1). Algorithmen und Datenstrukturen 213 9 Hash-Tabellen Viele Anwendungen erfordern dynamische Mengen, für welche die sog. Wörterbuch-Operationen INSERT, SEARCH und DELETE verfügbar sind. Beispiel: Symboltabelle

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

Untersuchen Sie, inwiefern sich die folgenden Funktionen für die Verwendung als Hashfunktion eignen. Begründen Sie Ihre Antwort.

Untersuchen Sie, inwiefern sich die folgenden Funktionen für die Verwendung als Hashfunktion eignen. Begründen Sie Ihre Antwort. Prof. aa Dr. Ir. Joost-Pieter Katoen Christian Dehnert, Friedrich Gretz, Benjamin Kaminski, Thomas Ströder Tutoraufgabe 1 (Güte von Hashfunktionen): Untersuchen Sie, inwiefern sich die folgenden Funktionen

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

Einführung Elementare Datenstrukturen. Der Konstruktor muß den Listenkopf head erzeugen. Der Vorgänger und Nachfolger von head ist head selbst.

Einführung Elementare Datenstrukturen. Der Konstruktor muß den Listenkopf head erzeugen. Der Vorgänger und Nachfolger von head ist head selbst. Einführung Elementare Datenstrukturen (Folie 38, Seite 23 im Skript) Der Konstruktor muß den Listenkopf head erzeugen. Der Vorgänger und Nachfolger von head ist head selbst. Einführung Elementare Datenstrukturen

Mehr

Algorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2014 / 2015. Vorlesung 5, Donnerstag, 20.

Algorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2014 / 2015. Vorlesung 5, Donnerstag, 20. Algorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2014 / 2015 Vorlesung 5, Donnerstag, 20. November 2014 (Wie baut man eine Hash Map, Universelles Hashing)

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

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

Informatik II, SS 2014

Informatik II, SS 2014 Informatik II SS 2014 (Algorithmen & Datenstrukturen) Vorlesung 10 (3.6.2014) Binäre Suchbäume I Algorithmen und Komplexität Zusätzliche Dictionary Operationen Dictionary: Zusätzliche mögliche Operationen:

Mehr

Bäume, Suchbäume und Hash-Tabellen

Bäume, Suchbäume und Hash-Tabellen Im folgenden Fokus auf Datenstrukturen, welche den assoziativen Zugriff (über einen bestimmten Wert als Suchkriterium) optimieren Bäume: Abbildung bzw. Vorberechnung von Entscheidungen während der Suche

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

13. Binäre Suchbäume

13. Binäre Suchbäume 1. Binäre Suchbäume Binäre Suchbäume realiesieren Wörterbücher. Sie unterstützen die Operationen 1. Einfügen (Insert) 2. Entfernen (Delete). Suchen (Search) 4. Maximum/Minimum-Suche 5. Vorgänger (Predecessor),

Mehr

Multiplikationsmethode. Informatik I. goldener Schnitt. Der goldene Schnitt. Einführung. Rainer Schrader. 30. Mai Konstruktionsmethode

Multiplikationsmethode. Informatik I. goldener Schnitt. Der goldene Schnitt. Einführung. Rainer Schrader. 30. Mai Konstruktionsmethode Multiplikationsethode Inforatik I Einführung Rainer Schrader Zentru für Angewandte Inforatik Köln 30. Mai 005 zu (): Irrationale Zahlen sind eine gute Wahl. Erinnerung: Φ = 1 + 5 = 1.6180339887... ˆΦ =

Mehr

Algorithmik Funke/Bahrdt/Krumpe/Mendel/Seybold SS Übungsblatt 4

Algorithmik Funke/Bahrdt/Krumpe/Mendel/Seybold SS Übungsblatt 4 Algorithmik Funke/Bahrdt/Krumpe/Mendel/Seybold SS 2015 http://www.fmi.informatik.uni-stuttgart.de/alg Institut für Formale Methoden der Informatik Universität Stuttgart Übungsblatt 4 Punkte: 50 Problem

Mehr

Algorithmen & Datenstrukturen 1. Klausur

Algorithmen & Datenstrukturen 1. Klausur Algorithmen & Datenstrukturen 1. Klausur 7. Juli 2010 Name Matrikelnummer Aufgabe mögliche Punkte erreichte Punkte 1 35 2 30 3 30 4 15 5 40 6 30 Gesamt 180 1 Seite 2 von 14 Aufgabe 1) Programm Analyse

Mehr

3.1 Konstruktion von minimalen Spannbäumen Es gibt zwei Prinzipien für die Konstruktion von minimalen Spannbäumen (Tarjan): blaue Regel rote Regel

3.1 Konstruktion von minimalen Spannbäumen Es gibt zwei Prinzipien für die Konstruktion von minimalen Spannbäumen (Tarjan): blaue Regel rote Regel 3.1 Konstruktion von minimalen Spannbäumen Es gibt zwei Prinzipien für die Konstruktion von minimalen Spannbäumen (Tarjan): blaue Regel rote Regel EADS 3.1 Konstruktion von minimalen Spannbäumen 16/36

Mehr

6-1 A. Schwill Grundlagen der Programmierung II SS 2005

6-1 A. Schwill Grundlagen der Programmierung II SS 2005 6-1 A. Schwill Grundlagen der Programmierung II SS 25 6. Suchen Suchen = Tätigkeit, in einem vorgegebenen Datenbestand alle Objekte zu ermitteln, die eine best. Bedingung, das Suchkriterium, erfüllen und

Mehr

Datenstrukturen. Mariano Zelke. Sommersemester 2012

Datenstrukturen. Mariano Zelke. Sommersemester 2012 Datenstrukturen Mariano Zelke Sommersemester 2012 Mathematische Grundlagen: Das Handwerkszeug Mariano Zelke Datenstrukturen 2/26 Formeln: n - i = n (n+1) 2 und - i=1 k i=0 a i = ak+1 1 a 1, falls a 1 Rechnen

Mehr

Algorithmen & Datenstrukturen Lösungen zu Blatt 9 HS 16

Algorithmen & Datenstrukturen Lösungen zu Blatt 9 HS 16 Eidgenössische Technische Hochschule Zürich Ecole polytechnique fédérale de Zurich Politecnico federale di Zurigo Federal Institute of Technology at Zurich Departement Informatik 24. November 2016 Markus

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

Amortisierte Laufzeitanalyse

Amortisierte Laufzeitanalyse Paris-Lodron Universität Salzburg 24 Januar, 2014 Inhaltsverzeichnis 1 Einführung Definition Beispiel:Stapeloperationen Beispiel: Binärzähler (1/2) Beispiel: Binärzähler (2/2) 2 Analyse der Stack mittels

Mehr

Vorlesung Sicherheit

Vorlesung Sicherheit Vorlesung Sicherheit Dennis Hofheinz IKS, KIT 06.05.2013 1 / 25 Überblick 1 Hashfunktionen Erinnerung Angriffe auf Hashfunktionen Zusammenfassung Hashfunktionen 2 Asymmetrische Verschlüsselung Idee Beispiel:

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

Vorlesung Algorithmische Geometrie. Streckenschnitte. Martin Nöllenburg 19.04.2011

Vorlesung Algorithmische Geometrie. Streckenschnitte. Martin Nöllenburg 19.04.2011 Vorlesung Algorithmische Geometrie LEHRSTUHL FÜR ALGORITHMIK I INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK Martin Nöllenburg 19.04.2011 Überlagern von Kartenebenen Beispiel: Gegeben zwei

Mehr

Informatik II. Sommersemester 2011 IV/X/MMXI, Name:... Matrikelnummer:...

Informatik II. Sommersemester 2011 IV/X/MMXI, Name:... Matrikelnummer:... Prof. G. Zachmann Dipl.-Inf. D. Mohr TU Clausthal Institut für Informatik Klausur zu Informatik II Sommersemester 2011 IV/X/MMXI, 14 00 15 00 Name:......................... Matrikelnummer:.........................

Mehr

Klausur Datenstrukturen und Algorithmen SoSe 2012

Klausur Datenstrukturen und Algorithmen SoSe 2012 Prof. aa Dr. Ir. Joost-Pieter Katoen Christian Dehnert, Jonathan Heinen, Thomas Ströder, Sabrina von Styp Klausur Datenstrukturen und Algorithmen SoSe 2012 Vorname: Nachname: Studiengang (bitte genau einen

Mehr

Effiziente Algorithmen und Datenstrukturen I. Kapitel 9: Minimale Spannbäume

Effiziente Algorithmen und Datenstrukturen I. Kapitel 9: Minimale Spannbäume Effiziente Algorithmen und Datenstrukturen I Kapitel 9: Minimale Spannbäume Christian Scheideler WS 008 19.0.009 Kapitel 9 1 Minimaler Spannbaum Zentrale Frage: Welche Kanten muss ich nehmen, um mit minimalen

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

14. Rot-Schwarz-Bäume

14. Rot-Schwarz-Bäume Bislang: Wörterbuchoperationen bei binären Suchbäume effizient durchführbar, falls Höhe des Baums klein. Rot-Schwarz-Bäume spezielle Suchbäume. Rot-Schwarz-Baum mit n Knoten hat Höhe höchstens 2 log(n+1).

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

Customization (Zuschneiden)

Customization (Zuschneiden) Customization (Zuschneiden) Anpassen der (Graph)Datenstruktur an die Anwendung. I Ziel: schnell, kompakt. I benutze Entwurfsprinzip: make the common case fast I Listen vermeiden Mögliches Problem: Software-Engineering-Alptraum

Mehr

Tutoraufgabe 1 (2 3 4 Bäume):

Tutoraufgabe 1 (2 3 4 Bäume): Prof. aa Dr. E. Ábrahám Datenstrukturen und Algorithmen SS Übungsblatt (Abgabe.0.0) F. Corzilius, S. Schupp, T. Ströder Allgemeine Hinweise: Die Hausaufgaben sollen in Gruppen von je bis Studierenden aus

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

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

Algorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2013 / 2014 Vorlesung 11, Donnerstag, 16.

Algorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2013 / 2014 Vorlesung 11, Donnerstag, 16. Algorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2013 / 2014 Vorlesung 11, Donnerstag, 16. Januar 2013 (Balancierte Suchbäume) Junior-Prof. Dr. Olaf Ronneberger

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Prof. Dr. Ralf Möller Universität zu Lübeck Institut für Informationssysteme Stefan Werner (Übungen) sowie viele Tutoren Teilnehmerkreis und Voraussetzungen Studiengänge

Mehr

Sortierte Folgen 250

Sortierte Folgen 250 Sortierte Folgen 250 Sortierte Folgen: he 1,...,e n i mit e 1 apple applee n kennzeichnende Funktion: M.locate(k):= addressof min{e 2 M : e k} Navigations Datenstruktur 2 3 5 7 11 13 17 19 00 Annahme:

Mehr

Vorlesung 04.12.2006: Binäre Entscheidungsdiagramme (BDDs) Dr. Carsten Sinz

Vorlesung 04.12.2006: Binäre Entscheidungsdiagramme (BDDs) Dr. Carsten Sinz Vorlesung 04.12.2006: Binäre Entscheidungsdiagramme (BDDs) Dr. Carsten Sinz Datenstruktur BDD 1986 von R. Bryant vorgeschlagen zur Darstellung von aussagenlogischen Formeln (genauer: Booleschen Funktionen)

Mehr

Informatik II, SS 2014

Informatik II, SS 2014 Informatik II SS 2014 (Algorithmen & Datenstrukturen) Vorlesung 13 (18.6.2014) Binäre Suchbäume IV (Rot Schwarz Bäume) Algorithmen und Komplexität Rot Schwarz Bäume Ziel: Binäre Suchbäume, welche immer

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 heitmann@informatik.uni-hamburg.de 25. November 2015 Frank Heitmann heitmann@informatik.uni-hamburg.de 1/122

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

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

Erinnerung VL

Erinnerung VL Erinnerung VL 30.05.2016 Radix-Sort, Abschluss Sortieren Prioritätslisten: Warteschlange mit Prioritäten deletemin: kleinstes Element rausnehmen insert: Element einfügen Binäre Heaps als Implementierung

Mehr

Name: Seite 2. Beantworten Sie die Fragen in den Aufgaben 1 und 2 mit einer kurzen, prägnanten Antwort.

Name: Seite 2. Beantworten Sie die Fragen in den Aufgaben 1 und 2 mit einer kurzen, prägnanten Antwort. Name: Seite 2 Beantworten Sie die Fragen in den Aufgaben 1 und 2 mit einer kurzen, prägnanten Antwort. Aufgabe 1 (8 Punkte) 1. Wie viele negative Zahlen (ohne 0) lassen sich im 4-Bit-Zweierkomplement darstellen?

Mehr

Klausur Informatik B. Teil 1: Informatik 3 Juli 2005

Klausur Informatik B. Teil 1: Informatik 3 Juli 2005 Klausur Informatik B Teil 1: Informatik 3 Juli 2005 ACHTUNG Die vorliegende wurde im Juli 2005 geschrieben. Sie umfaßt lediglich den Informatik-3-Teil der Informatik-B-Klausur und ist für eine Bearbeitungszeit

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

Termine für Übungstests. Kap. 3 Sortieren HeapSort ff Priority Queues. Motivation. Überblick. Analyse SiftDown

Termine für Übungstests. Kap. 3 Sortieren HeapSort ff Priority Queues. Motivation. Überblick. Analyse SiftDown Kap. Sortieren..5 HeapSort ff..6 Priority Queues Professor Dr. Vorlesung am Do 7.5. entfällt wegen FVV um Uhr Lehrstuhl für Algorithm Engineering, LS Fakultät für nformatik, TU Dortmund 7. VO DAP SS 009

Mehr

Referat zum Thema Huffman-Codes

Referat zum Thema Huffman-Codes Referat zum Thema Huffman-Codes Darko Ostricki Yüksel Kahraman 05.02.2004 1 Huffman-Codes Huffman-Codes ( David A. Huffman, 1951) sind Präfix-Codes und das beste - optimale - Verfahren für die Codierung

Mehr

Algorithmen und Datenstrukturen SS09. Foliensatz 12. Michael Brinkmeier. Technische Universität Ilmenau Institut für Theoretische Informatik

Algorithmen und Datenstrukturen SS09. Foliensatz 12. Michael Brinkmeier. Technische Universität Ilmenau Institut für Theoretische Informatik Foliensatz 12 Michael Brinkmeier Technische Universität Ilmenau Institut für Theoretische Informatik Sommersemester 2009 TU Ilmenau Seite 1 / 98 Hashing TU Ilmenau Seite 2 / 98 Wörterbücher Sei U ein Universum

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Prof. Dr. Ralf Möller Universität zu Lübeck Institut für Informationssysteme Tanya Braun (Übungen) sowie viele Tutoren Teilnehmerkreis und Voraussetzungen Studiengänge Bachelor

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

Suchen und Sortieren Sortieren. Heaps

Suchen und Sortieren Sortieren. Heaps Suchen und Heaps (Folie 245, Seite 63 im Skript) 3 7 21 10 17 31 49 28 14 35 24 42 38 Definition Ein Heap ist ein Binärbaum, der die Heapeigenschaft hat (Kinder sind größer als der Vater), bis auf die

Mehr

Suchen in Listen und Hashtabellen

Suchen in Listen und Hashtabellen Kapitel 12: Suchen in Listen und Hashtabellen Einführung in die Informatik Wintersemester 2007/08 Prof. Bernhard Jung Übersicht Einleitung Lineare Suche Binäre Suche (in sortierten Listen) Hashverfahren

Mehr

2.3.1 Einleitung Einfache Sortierverfahren Höhere Sortierverfahren Komplexität von Sortierverfahren Spezielle Sortierverfahren

2.3.1 Einleitung Einfache Sortierverfahren Höhere Sortierverfahren Komplexität von Sortierverfahren Spezielle Sortierverfahren 2.3 Sortieren 2.3.1 Einleitung 2.3.2 Einfache Sortierverfahren 2.3.3 Höhere Sortierverfahren 2.3.4 Komplexität von Sortierverfahren 2.3.5 Spezielle Sortierverfahren 1 Selection-Sort Idee: Suche kleinstes

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

Fortgeschrittene Programmiertechnik Klausur WS 2014/15 Angewandte Informatik Bachelor

Fortgeschrittene Programmiertechnik Klausur WS 2014/15 Angewandte Informatik Bachelor Fortgeschrittene Programmiertechnik Klausur WS 2014/15 Angewandte Informatik Bachelor Name Matrikelnummer Aufgabe Punkte Aufgabe Punkte Zwischensumme 1 6 2 8 3 16 4 14 5 12 56 6 16 7 18 8 20 9 10 Summe

Mehr

Viel Spaÿ! Aufgabe 0.1. Laufzeit unter Verdoppelung (-)

Viel Spaÿ! Aufgabe 0.1. Laufzeit unter Verdoppelung (-) Datenstrukturen (DS) Sommersemester 2015 Prof. Dr. Georg Schnitger Dipl-Inf. Bert Besser Hannes Seiwert, M.Sc. Institut für Informatik AG Theoretische Informatik Übung 0 Ausgabe: 14.04.2015 Abgabe: - Wenn

Mehr

Der linke Teilbaum von v enthält nur Schlüssel < key(v) und der rechte Teilbaum enthält nur Schlüssel > key(v)

Der linke Teilbaum von v enthält nur Schlüssel < key(v) und der rechte Teilbaum enthält nur Schlüssel > key(v) Ein Baum T mit Knotengraden 2, dessen Knoten Schlüssel aus einer total geordneten Menge speichern, ist ein binärer Suchbaum (BST), wenn für jeden inneren Knoten v von T die Suchbaumeigenschaft gilt: Der

Mehr

2 Mengen und Abbildungen

2 Mengen und Abbildungen 2.1 Mengen Unter einer Menge verstehen wir eine Zusammenfassung von Objekten zu einem Ganzen. Die Objekte heiÿen Elemente. Ist M eine Menge und x ein Element von M so schreiben wir x M. Wir sagen auch:

Mehr

Seminarausarbeitung Entwurf und Analyse von Datenstrukturen. Splay Trees. Mirco Lukas und Alexander Werthmann. Datum: 26.06.2013

Seminarausarbeitung Entwurf und Analyse von Datenstrukturen. Splay Trees. Mirco Lukas und Alexander Werthmann. Datum: 26.06.2013 Julius-Maximilians-Universität Würzburg Institut für Informatik Lehrstuhl für Informatik I Effiziente Algorithmen und wissensbasierte Systeme Seminarausarbeitung Entwurf und Analyse von Datenstrukturen

Mehr

AVL-Bäume Analyse. Theorem Ein AVL-Baum der Höhe h besitzt zwischen F h und 2 h 1 viele Knoten. Definition Wir definieren die nte Fibonaccizahl:

AVL-Bäume Analyse. Theorem Ein AVL-Baum der Höhe h besitzt zwischen F h und 2 h 1 viele Knoten. Definition Wir definieren die nte Fibonaccizahl: AVL-Bäume Analyse (Folie 85, Seite 39 im Skript) Theorem Ein AVL-Baum der Höhe h besitzt zwischen F h und 2 h 1 viele Knoten. Definition Wir definieren die nte Fibonaccizahl: 0 falls n = 0 F n = 1 falls

Mehr

! DBMS organisiert die Daten so, dass minimal viele Plattenzugriffe nötig sind.

! DBMS organisiert die Daten so, dass minimal viele Plattenzugriffe nötig sind. Unterschiede von DBMS und files Speichern von Daten! DBMS unterstützt viele Benutzer, die gleichzeitig auf dieselben Daten zugreifen concurrency control.! DBMS speichert mehr Daten als in den Hauptspeicher

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

Programmieren in Haskell Felder (Arrays)

Programmieren in Haskell Felder (Arrays) Programmieren in Haskell Felder (Arrays) Peter Steffen Universität Bielefeld Technische Fakultät 05.12.2008 1 Programmieren in Haskell Quadratzahlen 0 1 2 3 n 0 1 4 9 n 2 squareslist :: Integral a => [a]

Mehr

Kapitel 9 Suchalgorithmen

Kapitel 9 Suchalgorithmen Kapitel 9 Suchalgorithmen Technische Universität München Suchverfahren: Verfahren, das in einem Suchraum nach Mustern oder Objekten mit bestimmten Eigenschaften sucht. Vielfältige Anwendungsbereiche für

Mehr

Grundbegriffe der Informatik

Grundbegriffe der Informatik Grundbegriffe der Informatik Übung Simon Wacker Karlsruher Institut für Technologie Wintersemester 2015/2016 GBI Grundbegriffe der Informatik Karlsruher Institut für Technologie 1 / 13 Programmiersprachen

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

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

Informatik I Komplexität von Algorithmen

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

Mehr

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

Grundlagen der Programmierung

Grundlagen der Programmierung Grundlagen der Programmierung Dr. Tom Kamphans 1. Vorlesung 12.10.2016 1 Organisatorisches Vorlesung: Mittwochs 14:00 15:30, Raum F 201 Übung: Mittwochs 15:45 19:00, Raum F 225 Übung: alle zwei Wochen

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

Einführung in die Kryptographie - Multiple Choice Quiz

Einführung in die Kryptographie - Multiple Choice Quiz Technische Universität Darmstadt Einführung in die Kryptographie - Multiple Choice Quiz Oren Halvani. M.Sc. Inf ormatik. Matrikel N o. Disclaimer Um was für ein Dokument handelt es sich hier genau?. Im

Mehr

Java. Wir verwenden oft Java für Datenstrukturen und Algorithmen. Die Vorlesung ist aber von der Programmiersprache unabhängig.

Java. Wir verwenden oft Java für Datenstrukturen und Algorithmen. Die Vorlesung ist aber von der Programmiersprache unabhängig. Komplexität von Algorithmen (Folie 34, Seite 18 im Skript) Wir verwenden oft für Datenstrukturen und Algorithmen. Die Vorlesung ist aber von der Programmiersprache unabhängig. Lernziel sind die einzelnen

Mehr

Datenstruktur, die viele Operationen dynamischer Mengen unterstützt

Datenstruktur, die viele Operationen dynamischer Mengen unterstützt Algorithmen und Datenstrukturen 265 10 Binäre Suchbäume Suchbäume Datenstruktur, die viele Operationen dynamischer Mengen unterstützt Kann als Wörterbuch, aber auch zu mehr eingesetzt werden (Prioritätsschlange)

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

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: norman@pi3.informatik.uni-mannheim.de Matthias Brantner B6, 29, Raum C0.05 68131 Mannheim

Mehr

Datenstrukturen und Algorithmen

Datenstrukturen und Algorithmen Datenstrukturen und Algorithmen VO 708.031 27.10.2011 stefan.klampfl@tugraz.at 1 Wiederholung Wir vergleichen Algorithmen anhand des ordnungsmäßigen Wachstums von T(n), S(n), Asymptotische Schranken: O-Notation:

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

Prof. H. Herbstreith Fachbereich Informatik. Leistungsnachweis. Informatik 1 WS 2001/2002

Prof. H. Herbstreith Fachbereich Informatik. Leistungsnachweis. Informatik 1 WS 2001/2002 Prof. H. Herbstreith 30.01.2002 Fachbereich Informatik Leistungsnachweis Informatik 1 WS 2001/2002 Bearbeitungszeit 120 Minuten. Keine Hilfsmittel erlaubt. Aufgabe 1: 20 Punkte Vervollständigen Sie folgende

Mehr

Geometrie I. Sebastian Redinger Informatik 2 Programmiersysteme Martensstraße Erlangen

Geometrie I. Sebastian Redinger Informatik 2 Programmiersysteme Martensstraße Erlangen Geometrie I Sebastian Redinger 01.07.2015 Informatik 2 Programmiersysteme Martensstraße 3 91058 Erlangen Gliederung Grundlagen CCW Polygone Picks Theorem Konvexe Hülle - Graham Scan - Jarvis March 2 Gliederung

Mehr

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

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

Mehr

Datenstrukturen & Algorithmen

Datenstrukturen & Algorithmen Eidgenössische Technische Hochschule Zürich Ecole polytechnique fédérale de Zurich Politecnico federale di Zurigo Federal Institute of Technology at Zurich Institut für Theoretische Informatik Peter Widmayer

Mehr