Übersicht. Datenstrukturen und Algorithmen. Einführung (II) Einführung (I) Vorlesung 12: Hashing I (K11) Counting Sort. Joost-Pieter Katoen

Größe: px
Ab Seite anzeigen:

Download "Übersicht. Datenstrukturen und Algorithmen. Einführung (II) Einführung (I) Vorlesung 12: Hashing I (K11) Counting Sort. Joost-Pieter Katoen"

Transkript

1 Übersicht Datenstrukturen und Algorithen Vorlesung 2: (K) Joost-Pieter Katoen Lehrstuhl für Inforatik 2 Software Modeling and Verification Group 4. Juni Joost-Pieter Katoen Datenstrukturen und Algorithen /38 Joost-Pieter Katoen Datenstrukturen und Algorithen 2/38 Einführung (I) Dictionary (Wörterbuch) Das Dictionary (auch: Map, assoziatives Array) speichert Inforationen, die jederzeit anhand ihres Schlüssels abgerufen werden können. Weiterhin: Die Daten sind dynaisch gespeichert. Eleent dictsearch(dict d, int k) gibt die in d zu Schlüssel k gespeicherten Inforationen zurück. void dictinsert(dict d, Eleent e) speichert Eleent e unter seine Schlüssel e.key in d. void dictdelete(dict d, Eleent e) löscht das Eleent e aus d, wobei e in d enthalten sein uss. Beispiel Syboltabelle eines Copilers, wobei die Schlüssel Strings (etwa Bezeichner) sind. Einführung (II) Proble Welche Datenstrukturen sind geeignet, u ein Dictionary zu ipleentieren? Heap: Einfügen und Löschen sind effizient. Aber was ist it Suche? Sortiertes Array/Liste: Einfügen ist i Worst-Case linear. Rot-Schwarz-Bau: Alle Operationen sind i Worst-Case logarithisch. Lösung Unter realistischen Annahen benötigt eine Hash-Tabelle i schnitt O() für alle Operationen. Joost-Pieter Katoen Datenstrukturen und Algorithen 3/38 Joost-Pieter Katoen Datenstrukturen und Algorithen 4/38

2 Übersicht (I) Alloziere ein Array (die Direkte-Adressierungs-Tabelle), so dass es für jeden öglichen Schlüssel eine() Position gibt. Jedes Array-Eleent enthält einen Pointer auf die gespeicherte Inforation. Der Einfachheit halber vernachlässigen wir in der Vorlesung die zu den Schlüsseln gehörenden Inforationen. Mit Schlüsselenge U = {0,,..., n } ergibt sich: Eine Direkte-Adressierungs-Tabelle T[0..n-], wobei T[k] zu Schlüssel k gehört. datsearch(t, int k): return T[k]; datinsert(t, Eleent e): T[e.key] = e; datdelete(t, Eleent e): T[e.key] = null; Die Laufzeit jeder Operation ist i Worst-Case Θ(). Joost-Pieter Katoen Datenstrukturen und Algorithen 5/38 Joost-Pieter Katoen Datenstrukturen und Algorithen 6/38 (II) Duplikate in Linearzeit erkennen Schlüsselenge 0 K 3 9 benutzte Schlüssel Direkte-Adressierungs-Tabelle T Schlüssel n = 0 U Alle Eleente seien ganze Zahlen zwischen 0 und k, wobei k Θ(n). bool checkduplicates(int E[n], int n, int k) { 2 int histogra[k] = 0; // "Direkte-Adressierungs-Tabelle" 3 for (int i = 0; i < n; i++) { 4 if (histogra[e[i]] > 0) { 5 return true; // Duplikat gefunden 6 } else { 7 histogra[e[i]]++; // Zähle Häufigkeit 8 } 9 } 0 return false; // keine Duplikate } Joost-Pieter Katoen Datenstrukturen und Algorithen 7/38 Joost-Pieter Katoen Datenstrukturen und Algorithen 8/38

3 Idee. Berechne Häufigkeit 2. Berechne Position von x = Anzahl der Eleente x 3. Erzeuge Ausgabearray anhand dieser neuen Positionen Alle Eleente seien ganze Zahlen zwischen 0 und k, wobei k Θ(n). int[n] countsort(int E[n], int n, int k) { 2 int histogra[k] = 0; // "Direkte-Adressierungs-Tabelle" 3 for (int i = 0; i < n; i++) { 4 histogra[e[i]]++; // Zähle Häufigkeit 5 } 6 for (int i = ; i < k; i++) { // Berechne Position 7 histogra[i] = histogra[i] + histogra[i - ]; 8 } 9 // Erzeuge Ausgabe 0 int result[n]; for (int i = n - ; i >= 0; i--) { // stabil: rückwärts 2 histogra[e[i]]--; 3 result[histogra[e[i]]] = E[i]; 4 } 5 return result; 6 } Worst-Case Zeitkoplexität: Θ(n) Joost-Pieter Katoen Datenstrukturen und Algorithen 9/38 Joost-Pieter Katoen Datenstrukturen und Algorithen 0/38 : Beispiel : Beispiel Eingabe Eingabe Histogra Histogra Positionen Ausgabe Joost-Pieter Katoen Datenstrukturen und Algorithen /38 Joost-Pieter Katoen Datenstrukturen und Algorithen /38

4 : Beispiel Eingabe Positionen Ausgabe Joost-Pieter Katoen Datenstrukturen und Algorithen /38 (II) Proble Wir sortieren also it Worst-Case Koplexität Θ(n), obwohl wir als untere Schranke Θ(n log n) bewiesen hatten? Lösung Dieser Algorithus ist nicht it Quicksort, Heapsort, usw. vergleichbar denn er basiert nicht auf Vergleich von Eleenten, sondern auf Häufigkeiten. Das funktioniert, inde wir Direkte-Adressierung (Einfügen, Suchen, Löschen in Θ()) ausnutzen. Hauptproble: Überäßiger Speicherbedarf für das Array. Zu Beispiel bei Strings it 20 Zeichen (5 bit/zeichen) als Schlüssel benötigt an = 2 00 Arrayeinträge. Können wir diesen riesigen Speicherbedarf vereiden und effizient bleiben? Ja! it Hashing. Joost-Pieter Katoen Datenstrukturen und Algorithen 2/38 Übersicht Hashing (I) Praktisch wird nur ein kleiner Teil der Schlüssel verwendet, d. h. K U. Bei Direkter-Adressierung ist der größte Teil von T verschwendet. Das Ziel von Hashing ist: Einen extre großen Schlüsselrau auf einen vernünftig kleinen Bereich von ganzen Zahlen abzubilden. Dass zwei Schlüssel auf die selbe Zahl abgebildet werden, soll öglichst unwahrscheinlich sein. Hashfunktion, Hashtabelle, Hashkollision Eine Hashfunktion bildet einen Schlüssel auf einen Index der Hashtabelle T ab: h : U { 0,,..., } für Tabellengröße und U = n. Wir sagen, dass h(k) der Hashwert des Schlüssels k ist. Das Auftreten von h(k) = h(k ) für k k nennt an eine Kollision. Joost-Pieter Katoen Datenstrukturen und Algorithen 3/38 Joost-Pieter Katoen Datenstrukturen und Algorithen 4/38

5 Hashing (II) Schlüsselenge k 2 K benutzte Schlüssel U k k 4 k 3 k 5 Hashfunktion 0 Hashtabelle h(k ) h(k 2 ) = h(k 3 ) h(k 5 ) h(k 4 ) Kollision Wie finden wir, die einfach auszurechnen sind und Kollisionen iniieren? Wie behandeln wir dennoch auftretende Kollisionen? Joost-Pieter Katoen Datenstrukturen und Algorithen 5/38 Kollisionen: Das Geburtstagsparadoxon (I) Das liegt a Geburtstagsparadoxon Unsere Hashfunktion ag noch so gut sein, wir sollten auf Kollisionen vorbereitet sein! Die Wahrscheinlichkeit, dass dein Nachbar a selben Tag wie du Geburtstag hat ist 365 0,0027. Fragt an 23 Personen, wächst die Wahrscheinlichkeit auf ,063. Sind aber 23 Personen in eine Rau, dann haben zwei von ihnen den selben Geburtstag it Wahrscheinlichkeit ( ) 0,5 365 Joost-Pieter Katoen Datenstrukturen und Algorithen 6/38 Kollisionen: Das Geburtstagsparadoxon (II) Kollisionen: Das Geburtstagsparadoxon (III) Auf Hashing angewendet bedeutet das: Die Wahrscheinlichkeit keiner Kollision nach k Einfügevorgängen in einer -eleentigen Tabelle ist: Dieses Produkt geht gegen k + k i = i=0 Etwa bei = 365 ist die Wahrscheinlichkeit für k 50 praktisch 0. Wahrscheinlichkeit keiner Kollision Anzahl Einfügungen n Joost-Pieter Katoen Datenstrukturen und Algorithen 7/38 Joost-Pieter Katoen Datenstrukturen und Algorithen 8/38

6 Übersicht Kollisionsauflösung durch (I) Idee Alle Schlüssel, die zu gleichen Hash führen, werden in einer verketteten Liste gespeichert. [Luhn 953] K k 2 U k k 4 k 3 k 5 k 7 k 6 0 k k 3 k 2 k 6 k 7 k 5 k 4 Joost-Pieter Katoen Datenstrukturen und Algorithen 9/38 Joost-Pieter Katoen Datenstrukturen und Algorithen 20/38 Kollisionsauflösung durch (II) Kollisionsauflösung durch (III) Dictionary-Operationen bei (inforell) hcsearch(int k): Suche nach eine Eleent it Schlüssel k in der Liste T[h(k)]. hcinsert(eleent e): Setze Eleent e an das Ende der Liste T[h(e.key)]. hcdelete(eleent e): Lösche Eleent e aus der Liste T[h(e.key)]. Worst-Case Koplexität Angenoen, die Berechnung von h(k) ist recht effizient, etwa Θ(). Die Koplexität ist: Suche: Proportional zur Länge der Liste T [h(k)]. Einfügen: Konstant (ohne Überprüfung, ob das Eleent schon vorhanden ist). Löschen: Proportional zur Länge der Liste T [h(k)]. I Worst-Case haben alle Schüssel den selben Hashwert. Suche und Löschen hat dann die selbe Worst-Case Koplexität wie Listen: Θ(n). I Average-Case ist Hashing it aber dennoch effizient! Joost-Pieter Katoen Datenstrukturen und Algorithen 2/38 Joost-Pieter Katoen Datenstrukturen und Algorithen 22/38

7 Average-Case-Analyse von (I) Average-Case-Analyse von (II) Annahen: Es gebe n ögliche Schlüssel und Hashtabellenpositionen, n. Gleichverteiltes Hashing: Jeder Schlüssel wird it gleicher Wahrscheinlichkeit und unabhängig von den anderen Schlüssel auf jedes der Slots abgebildet. Der Hashwert h(k) kann in konstanter Zeit berechnet werden. O, Θ, Ω erweitert Aus technischen Gründen erweitern wir die Definition von O, Θ und Ω auf Funktionen it zwei Paraetern. Beispielsweise ist g O(f ) gdw. c > 0, n 0, 0 it n n 0, 0 : 0 g(n, ) c f (n, ) Der Füllgrad der Hashtabelle T ist α(n, ) = n. Auch die durchschnittliche Länge der Liste T[h(k)] ist α Wieviele Eleente aus T[h(k)] üssen nun i Schnitt untersucht werden, u den Schlüssel k zu finden? Unterscheide erfolgreiche von erfolgloser Suche (wie in Vorlesung ). Joost-Pieter Katoen Datenstrukturen und Algorithen 23/38 Joost-Pieter Katoen Datenstrukturen und Algorithen 24/38 Average-Case-Analyse von (III) Average-Case-Analyse von (IV) Erfolglose Suche Die erfolglose Suche benötigt Θ( + α) Zeit i Average-Case. Die erwartete Zeit, u Schlüssel k zu finden ist gerade die Zeit, u die Liste T[h(k)] zu durchsuchen. Die erwartete Länge dieser Liste ist α. Das Berechnen von h(k) benötige nur eine Zeiteinheit. Insgesat erhält an + α Zeiteinheiten i Durchschnitt. Erfolgreiche Suche Die erfolgreiche Suche benötigt i Average-Case auch Θ( + α). Sei k i der i-te eingefügte Schlüssel und A(k i ) die erwartete Zeit, u k i zu finden: A(k i ) = + Durchschnittliche Anzahl Schlüssel, die in T[h(k_i)] erst nach k i eingefügt wurden Annahe von gleichverteilte Hashing ergibt: A(k i ) = + Durchschnitt über alle n Einfügungen in die Hashtabelle: n j=i+ A(k i ) i= Joost-Pieter Katoen Datenstrukturen und Algorithen 25/38 Joost-Pieter Katoen Datenstrukturen und Algorithen 26/38

8 Average-Case-Analyse von (IV) Die erwartete Anzahl an untersuchten Eleenten bei einer erfolgreichen Suche ist: + Sue aufteilen n i= = n i= = + n j=i+ + n i= j=i+ Vereinfachen (n i) Sue... n i= = + n(n ) n 2 = + n 2 = + α 2 α 2n Vereinfachen und dait in Θ( + α) Koplexität der Dictionary-Operationen it Vorausgesetzt die Anzahl der Einträge ist (wenigstens) proportional zu n, dann ist der Füllgrad α(n, ) = n O() = O(). Dait benötigen alle Operationen i Durchschnitt O(). Weil das auch Suche it einschließt, können wir i Average-Case it O(n) sortieren. Joost-Pieter Katoen Datenstrukturen und Algorithen 27/38 Joost-Pieter Katoen Datenstrukturen und Algorithen 28/38 Übersicht Anwendungen von Digitale Zertifikate (SSL: sha bzw. d5) Digitale Signaturen in der Praxis unterschreibt an eist nicht die Nachricht, sondern ihren Hashwert Passwortverschlüsselung z.b. htpasswd (Apache): d5, sha und Mediawiki: d5 Verifikation von Downloads (üblich: d5) Versionskontrollsystee z.b. subversion: d5, git: sha Datenblockverifikation bei Filesharingprograen (wie Bittorrent) Joost-Pieter Katoen Datenstrukturen und Algorithen 29/38 Joost-Pieter Katoen Datenstrukturen und Algorithen 30/38

9 Gängige (kryptographische) Hashfunktion Eine Hashfunktion bildet einen Schlüssel auf eine ganze Zahl (d. h. einen Index) ab. Was acht eine gute Hashfunktion aus? Die Hashfunktion h(k) sollte einfach zu berechnen sein, sie sollte surjektiv auf der Menge 0... sein, sie sollte alle Indizes it öglichst gleicher Häufigkeit verwenden, und ähnliche Schlüssel öglichst breit auf die Hashtabelle verteilen. Drei Basistechniken, eine gute Hashfunktion zu erhalten: Die Divisionsethode, die Multiplikationsethode, und universelles Hashing. Joost-Pieter Katoen Datenstrukturen und Algorithen 3/38 Joost-Pieter Katoen Datenstrukturen und Algorithen 32/38 Divisionsethode Multiplikationsethode (I) Divisionsethode Hashfunktion: h(k) = k od Bei dieser Methode uss der Wert von sorgfältig gewählt werden. Für = 2 p ist h(k) einfach die letzte p Bits. Besser ist es, h(k) abhängig von ehreren Bits zu achen. Gute Wahl ist pri und nicht zu nah an einer Zweierpotenz. Beispiel Strings it 2000 Zeichen als Schlüssel. Wir erlauben durchschnittlich 3 Sondierungen für die erfolglose Suche. Wähle 2000/3 70. Nähe an 2000/3, Prizahl, und nicht in der Näje von Zweierpotenz Multiplikationsethode Hashfunktion: h(k) = (k c od ) für 0 < c < k c od ist der Nachkoateil von k c, d. h. k c k c. Knuth epfiehlt c ( 5 )/2 0,62. Der Wert von ist hier nicht kritisch. Joost-Pieter Katoen Datenstrukturen und Algorithen 33/38 Joost-Pieter Katoen Datenstrukturen und Algorithen 34/38

10 Multiplikationsethode (II) Hashfunktion: h(k) = (k c od ). Das übliche Vorgehen nit = 2 p und c = s 2, wobei 0 < s < 2 w. Dann: w Berechne zunächst k s (= k c 2 w ). Teile durch 2 w, verwende nur die Nachkoastellen. Multipliziere it 2 p und verwende nur den ganzzahligen Anteil. w Bits Schlüssel k c 2 w p Bits extrahieren h(k) Universelles Hashing (I) Das größte Proble bei Hashing ist, dass es ier eine ungünstige Sequenz von Schlüsseln gibt, die auf den selben Slot abgebildet werden. Idee Wähle zufällig eine Hashfunktion aus einer gegebenen kleinen Menge H, unabhängig von den verwendeten Schlüsseln. Eine Menge ist universell, wenn der Anteil der Funktionen aus H, so dass k und k kollidieren ist H. d. h., die W lichkeit einer Kollision von k und k ist H H =. Für universelles Hashing ist die erwartete Länge der Liste T[k]. Gleich α, wenn k nicht in T enthalten ist. 2. Gleich +α, wenn k in T enthalten ist. Joost-Pieter Katoen Datenstrukturen und Algorithen 35/38 Joost-Pieter Katoen Datenstrukturen und Algorithen 36/38 Universelles Hashing (II) Nächste Vorlesung Beispiel Definiere die Eleente der Klasse H von durch: h a,b (k) = ((a k + b) od p) od p sei Prizahl it p > und p > größter Schlüssel. Die ganzen Zahlen a ( a < p) und b (0 b < p) werden erst bei der Ausführung gewählt. Nächste Vorlesung Montag. Juni, 08:30 (Hörsaal H0). Bis dann! Donnerstag 7. Juni, 8:00: Präsenzübung Freittag 8. Juni: keine Vorlesung, ab 4:00 Inforatik Soerfest Die Klasse der obigen h a,b ist universell. Joost-Pieter Katoen Datenstrukturen und Algorithen 37/38 Joost-Pieter Katoen Datenstrukturen und Algorithen 38/38

Hashing I. 1 Direkte Adressierung. 2 Grundlagen des Hashings. 3 Kollisionsauflösung durch Verkettung. 4 Hashfunktionen. 5 Offene Adressierung

Hashing I. 1 Direkte Adressierung. 2 Grundlagen des Hashings. 3 Kollisionsauflösung durch Verkettung. 4 Hashfunktionen. 5 Offene Adressierung Übersicht Datenstrukturen und Algorithmen Vorlesung 2: Hashing Prof. Dr. Erika Ábrahám Theorie Hybrider Systeme Informatik 2 http://ths.rwth-aachen.de/teaching/ss-4/ datenstrukturen-und-algorithmen/ Diese

Mehr

Hashing II. Übersicht. 1 Hashing und Verkettung. 2 Offene Adressierung

Hashing II. Übersicht. 1 Hashing und Verkettung. 2 Offene Adressierung Übersicht Datenstrukturen und Algorithmen Vorlesung 13: 1 Joost-Pieter Katoen Lehrstuhl für Informatik 2 Software Modeling and Verification Group https://moves.rwth-aachen.de/teaching/ss-18/dsal/ 2 Effizienz

Mehr

Hashing II. Übersicht. 1 Hashing und Verkettung. 2 Offene Adressierung

Hashing II. Übersicht. 1 Hashing und Verkettung. 2 Offene Adressierung Übersicht Datenstrukturen und Algorithmen Vorlesung 13: 1 Joost-Pieter Katoen Lehrstuhl für Informatik 2 Software Modeling and Verification Group http://moves.rwth-aachen.de/teaching/ss-15/dsal/ 2 Effizienz

Mehr

12. Hashing. Hashing einfache Methode um Wörtebücher zu implementieren, d.h. Hashing unterstützt die Operationen Search, Insert, Delete.

12. Hashing. Hashing einfache Methode um Wörtebücher zu implementieren, d.h. Hashing unterstützt die Operationen Search, Insert, Delete. Hashing einfache Methode um Wörtebücher zu implementieren, d.h. Hashing unterstützt die Operationen Search, Insert, Delete. Worst-case Zeit für Search: Θ(n). In der Praxis jedoch sehr gut. Unter gewissen

Mehr

13. Hashing. AVL-Bäume: Frage: Suche, Minimum, Maximum, Nachfolger in O(log n) Einfügen, Löschen in O(log n)

13. Hashing. AVL-Bäume: Frage: Suche, Minimum, Maximum, Nachfolger in O(log n) Einfügen, Löschen in O(log n) AVL-Bäume: Ausgabe aller Elemente in O(n) Suche, Minimum, Maximum, Nachfolger in O(log n) Einfügen, Löschen in O(log n) Frage: Kann man Einfügen, Löschen und Suchen in O(1) Zeit? 1 Hashing einfache Methode

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

Kapitel 4. Streuen. (h K injektiv) k 1 k 2 K = h(k 1 ) h(k 2 )

Kapitel 4. Streuen. (h K injektiv) k 1 k 2 K = h(k 1 ) h(k 2 ) Kapitel 4 Streuen Wir behandeln nun Ipleentationen ungeordneter Wörterbücher, in denen die Schlüssel ohne Beachtung ihrer Sortierreihenfolge gespeichert werden dürfen, verlangen aber, dass es sich bei

Mehr

Informatik II, SS 2016

Informatik II, SS 2016 Informatik II - SS 2016 (Algorithmen & Datenstrukturen) Vorlesung 8 (13.5.2016) Hashtabellen I Algorithmen und Komplexität Dictionary mit sortiertem Array Laufzeiten: create: O(1) insert: O(n) find: O(log

Mehr

14. Hashing. Motivation. Naive Ideen. Bessere Idee? k(s) = s i b i

14. Hashing. Motivation. Naive Ideen. Bessere Idee? k(s) = s i b i Motivation 14. Hashing Hash Tabellen, Geburtstagsparadoxon, Hashfunktionen, Perfektes und universelles Hashing, Kollisionsauflösung durch Verketten, offenes Hashing, Sondieren [Ottan/Widayer, Kap. 4.1-4.3.2,

Mehr

Satz 23 In einer Hashtabelle der Größe n mit m Objekten tritt mit Wahrscheinlichkeit

Satz 23 In einer Hashtabelle der Größe n mit m Objekten tritt mit Wahrscheinlichkeit Satz 23 In einer Hashtabelle der Größe n mit m Objekten tritt mit Wahrscheinlichkeit 1 e m(m 1) 2n 1 e m2 2n mindestens eine Kollision auf, wenn für jeden Schlüssel jede Hashposition gleich wahrscheinlich

Mehr

Informatik II, SS 2018

Informatik II, SS 2018 Informatik II - SS 2018 (Algorithmen & Datenstrukturen) Vorlesung 6 (7.5.2018) Dictionaries, Binäre Suche, Hashtabellen I / Yannic Maus Algorithmen und Komplexität Abstrakte Datentypen : Dictionary Dictionary:

Mehr

Korollar 191 In einem (a, b)-baum mit n gespeicherten Schlüsseln können die Wörterbuchoperationen in Zeit O(log a n) durchgeführt werden.

Korollar 191 In einem (a, b)-baum mit n gespeicherten Schlüsseln können die Wörterbuchoperationen in Zeit O(log a n) durchgeführt werden. Korollar 191 In einem (a, b)-baum mit n gespeicherten Schlüsseln können die Wörterbuchoperationen in Zeit O(log a n) durchgeführt werden. Bemerkung: Die Wahl von a und b hängt wesentlich von der Anwendung

Mehr

17. Hashing. Motivation. Naive Ideen. Bessere Idee? k(s) = s i b i

17. Hashing. Motivation. Naive Ideen. Bessere Idee? k(s) = s i b i Motivation 17. Hashing Hash Tabellen, Geburtstagsparadoxon, Hashfunktionen, Kollisionsauflösung durch Verketten, offenes Hashing, Sondieren Ziel: Tabelle aller n Studenten dieser Vorlesung Anforderung:

Mehr

Hashing. Überblick Aufgabe Realisierung

Hashing. Überblick Aufgabe Realisierung Überblick Aufgabe Realisierung Aufgabe Realisierung Anforderungen Wahl einer Hashfunktion it Verkettung der Überläufer Offene Universelles 2/33 Überblick Aufgabe Realisierung Aufgabe Dynaische Verwaltung

Mehr

Informatik II, SS 2014

Informatik II, SS 2014 Informatik II SS 2014 (Algorithmen & Datenstrukturen) Vorlesung 7 (21.5.2014) Binäre Suche, Hashtabellen I Algorithmen und Komplexität Abstrakte Datentypen : Dictionary Dictionary: (auch: Maps, assoziative

Mehr

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

Algorithmen I. Tutorium 1-4. Sitzung. Dennis Felsing Algorithmen I Tutorium 1-4. Sitzung Dennis Felsing dennis.felsing@student.kit.edu www.stud.uni-karlsruhe.de/~ubcqr/algo 2011-05-09 Überblick 1 Verkettete Listen 2 Unbeschränkte Felder 3 Amortisierte Laufzeitanalyse

Mehr

Dictionary Definition

Dictionary Definition Kapitel ADS:IV IV. Datenstrukturen Record Linear List Linked List Stack Queue Priority Queue Dictionary Direct-address Table Hash Function ADS:IV-60 Datenstrukturen POTTHAST 2018 Dictionary Definition

Mehr

3. Übung Algorithmen I

3. Übung Algorithmen I INSTITUT FÜR THEORETISCHE INFORMATIK 1 KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft Institut für Theoretische www.kit.edu Informatik Hashtabellen:

Mehr

Grundlagen der Algorithmen und Datenstrukturen Kapitel 4

Grundlagen der Algorithmen und Datenstrukturen Kapitel 4 Grundlagen der Algorithmen und Datenstrukturen Kapitel 4 Christian Scheideler + Helmut Seidl SS 2009 06.05.09 Kapitel 4 1 Wörterbuch-Datenstruktur S: Menge von Elementen Jedes Element e identifiziert über

Mehr

Übersicht. Einfache Suche Binäre Suchbäume Hashing Skip-Lists Mengen Sortieren Order-Statistics. 2 Suchen und Sortieren

Übersicht. Einfache Suche Binäre Suchbäume Hashing Skip-Lists Mengen Sortieren Order-Statistics. 2 Suchen und Sortieren Übersicht 2 Einfache Suche Binäre Suchbäume Skip-Lists Mengen Sortieren Order-Statistics (Folie 103, Seite 46 im Skript) Wie können wir eine partielle Funktion {1,..., n} N effizient speichern? Wie können

Mehr

Programm heute. Algorithmen und Datenstrukturen (für ET/IT) Such-Algorithmen für Wörterbücher. Wörterbuch. Sommersemester Dr.

Programm heute. Algorithmen und Datenstrukturen (für ET/IT) Such-Algorithmen für Wörterbücher. Wörterbuch. Sommersemester Dr. Programm heute Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 0 Fortgeschrittene Datenstrukturen Dr. Stefanie Demirci Computer Aided Medical Procedures Technische Universität München Such-Algorithmen

Mehr

Vorlesung Datenstrukturen

Vorlesung Datenstrukturen Vorlesung Datenstrukturen Hashing Maike Buchin 2. und 4.5.2017 Motivation häufig werden Daten anhand eines numerischen Schlüssel abgespeichert Beispiele: Studenten der RUB nach Matrikelnummer Kunden einer

Mehr

Humboldt-Universität zu Berlin Berlin, den Institut für Informatik

Humboldt-Universität zu Berlin Berlin, den Institut für Informatik Humboldt-Universität zu Berlin Berlin, den 15.06.2015 Institut für Informatik Prof. Dr. Ulf Leser Übungen zur Vorlesung M. Bux, B. Grußien, J. Sürmeli, S. Wandelt Algorithmen und Datenstrukturen Übungsblatt

Mehr

Algorithmen und Datenstrukturen (für ET/IT)

Algorithmen und Datenstrukturen (für ET/IT) Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 2014 Dr. Tobias Lasser Computer Aided Medical Procedures Technische Universität München Programm heute 7 Fortgeschrittene Datenstrukturen 8 Such-Algorithmen

Mehr

Erinnerung VL vom

Erinnerung VL vom Erinnerung VL vom 09.05.2016 Analyse von Hashtabellen mit verketteten Listen Erwartete Laufzeit O(1) bei zuf. Hashfkt. und falls M O(m) Guter Ersatz (hier) für zuf. Hashfkt.: universelle Hashfunktionen

Mehr

EADS 3.3 Gewichtsbalancierte Bäume 95/598 ľernst W. Mayr

EADS 3.3 Gewichtsbalancierte Bäume 95/598 ľernst W. Mayr 3.3 Gewichtsbalancierte Bäume Siehe zu diesem Thema Seite 189ff in Kurt Mehlhorn: Data structures and algorithms 1: Sorting and searching, EATCS Monographs on Theoretical Computer Science, Springer Verlag:

Mehr

Übungsklausur Algorithmen I

Übungsklausur Algorithmen I Jun.-Prof. Hofheinz, Jun.-Prof. Meyerhenke (ITI, KIT) 08.06.2015 Übungsklausur Algorithmen I Aufgabe 1. (Algorithm Engineering) Nennen Sie zwei Konzepte, die Algorithm Engineering im Gegensatz zu theoretischer

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

4. Übung zu Algorithmen I 17. Mai 2017

4. Übung zu Algorithmen I 17. Mai 2017 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) Organisatorisches

Mehr

Algorithmen und Datenstrukturen (für ET/IT) Programm heute. Sommersemester Dr. Tobias Lasser

Algorithmen und Datenstrukturen (für ET/IT) Programm heute. Sommersemester Dr. Tobias Lasser Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 06 Dr. Tobias Lasser Computer Aided Medical Procedures Technische Universität München Programm heute 7 Fortgeschrittene Datenstrukturen 8 Such-Algorithmen

Mehr

6/23/06. Universelles Hashing. Nutzen des Universellen Hashing. Problem: h fest gewählt es gibt ein S U mit vielen Kollisionen

6/23/06. Universelles Hashing. Nutzen des Universellen Hashing. Problem: h fest gewählt es gibt ein S U mit vielen Kollisionen Universelles Hashing Problem: h fest gewählt es gibt ein S U mit vielen Kollisionen wir können nicht annehmen, daß die Keys gleichverteilt im Universum liegen (z.b. Identifier im Programm) könnte also

Mehr

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

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

Mehr

Teil VII. Hashverfahren

Teil VII. Hashverfahren Teil VII Hashverfahren Überblick 1 Hashverfahren: Prinzip 2 Hashfunktionen 3 Kollisionsstrategien 4 Aufwand 5 Hashen in Java Prof. G. Stumme Algorithmen & Datenstrukturen Sommersemester 2009 7 1 Hashverfahren:

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Prof. Martin Lercher Institut für Informatik Heinrich-Heine-Universität Düsseldorf Teil Hash-Verfahren Version vom: 18. November 2016 1 / 28 Vorlesung 9 18. November 2016

Mehr

Programmiertechnik II

Programmiertechnik II Hash-Tabellen Überblick Hashfunktionen: Abbildung von Schlüsseln auf Zahlen Hashwert: Wert der Hashfunktion Hashtabelle: Symboltabelle, die mit Hashwerten indiziert ist Kollision: Paar von Schlüsseln mit

Mehr

Datenstrukturen und Algorithmen. Vorlesung 9

Datenstrukturen und Algorithmen. Vorlesung 9 Datenstrukturen und Algorithmen Vorlesung 9 Inhaltsverzeichnis Vorige Woche: ADT Deque ADT Prioritätsschlange Binomial-Heap Heute betrachten wir: Aufgaben Hashtabellen Aufgabe I Rot-Schwarz Kartenspiel:

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

Informatik II, SS 2014

Informatik II, SS 2014 Informatik II SS 2014 (Algorithmen & Datenstrukturen) Vorlesung 9 (28.5.2014) Hashtabellen III Algorithmen und Komplexität Offene Adressierung : Zusammenfassung Offene Adressierung: Alle Schlüssel/Werte

Mehr

Vorlesung Informatik 2 Algorithmen und Datenstrukturen

Vorlesung Informatik 2 Algorithmen und Datenstrukturen Vorlesung Informatik 2 Algorithmen und Datenstrukturen (11 Hashverfahren: Allgemeiner Rahmen) Prof. Dr. Susanne Albers Das Wörterbuch-Problem (1) Das Wörterbuch-Problem (WBP) kann wie folgt beschrieben

Mehr

Programmiertechnik II

Programmiertechnik II Programmiertechnik II Hash-Tabellen Überblick Hashfunktionen: Abbildung von Schlüsseln auf Zahlen Hashwert: Wert der Hashfunktion Hashtabelle: Symboltabelle, die mit Hashwerten indiziert ist Kollision:

Mehr

Übersicht. Datenstrukturen und Algorithmen. Übersicht. Motivation. Vorlesung 10: Binäre Suchbäume

Übersicht. Datenstrukturen und Algorithmen. Übersicht. Motivation. Vorlesung 10: Binäre Suchbäume Übersicht Datenstrukturen und lgorithmen Vorlesung : Joost-Pieter Katoen Lehrstuhl für Informatik 2 Software Modeling and Verification Group http://moves.rwth-aachen.de/teaching/ss-/dsal/ 1 Suche Einfügen

Mehr

Grundlagen: Algorithmen und Datenstrukturen

Grundlagen: Algorithmen und Datenstrukturen Grundlagen: Algorithmen und Datenstrukturen Prof. Dr. Hanjo Täubig Lehrstuhl für Effiziente Algorithmen (Prof. Dr. Ernst W. Mayr) Institut für Informatik Technische Universität München Sommersemester 2010

Mehr

P ( Mindestens zwei Personen haben am gleichen Tag Geb. ) (1) = 1 P ( Alle Personen haben an verschiedenen Tagen Geb. ) (2)

P ( Mindestens zwei Personen haben am gleichen Tag Geb. ) (1) = 1 P ( Alle Personen haben an verschiedenen Tagen Geb. ) (2) 1 Hashing Einleitung Eine sehr naive Herangehensweise zur Implementierung eines Wörterbuchs ist die Benutzung eines hinreichend grossen unsortierten Arrays, in dem jeweils an eine freie Position eingefügt

Mehr

Hashtabellen. Hashverfahren, was ist das eigentlich?

Hashtabellen. Hashverfahren, was ist das eigentlich? Hashverfahren, was ist das eigentlich? Das Hashverfahren ist ein Algorithmus zum Suchen von Datenobjekten in großen Datenmengen. Es basiert auf der Idee, dass eine mathematische Funktion die Position eines

Mehr

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

Übersicht. Datenstrukturen und Algorithmen. Divide-and-Conquer. Übersicht. Vorlesung 9: Quicksort (K7) Datenstrukturen und Algorithmen Vorlesung 9: (K7) Joost-Pieter Katoen Algorithmus Lehrstuhl für Informatik 2 Software Modeling and Verification Group http://moves.rwth-aachen.de/teaching/ss-5/dsal/ 2 7.

Mehr

17. Hashing. Hash Tabellen, Geburtstagsparadoxon, Hashfunktionen, Kollisionsauflösung durch Verketten, offenes Hashing, Sondieren

17. Hashing. Hash Tabellen, Geburtstagsparadoxon, Hashfunktionen, Kollisionsauflösung durch Verketten, offenes Hashing, Sondieren 336 17. Hashing Hash Tabellen, Geburtstagsparadoxon, Hashfunktionen, Kollisionsauflösung durch Verketten, offenes Hashing, Sondieren Motivation 337 Ziel: Tabelle aller n Studenten dieser Vorlesung Anforderung:

Mehr

Lösungsvorschläge für das 7. Übungsblatt Letzte Änderung am 27. Juni 2001

Lösungsvorschläge für das 7. Übungsblatt Letzte Änderung am 27. Juni 2001 Grundlagen zu Datenstrukturen und Algorithen Schitt, Schöer SS 2001 http://www.pi-sb.pg.de/~sschitt/info5-ss01 U N S A R I V E R S A V I E I T A S N I S S Lösungsvorschläge für das 7. Übungsblatt Letzte

Mehr

Tutoraufgabe 1 (Sortieralgorithmus):

Tutoraufgabe 1 (Sortieralgorithmus): Prof. aa Dr. Ir. Joost-Pieter Katoen Datenstrukturen und Algorithmen SS Tutoriumslösung - Übung 4 (Abgabe 2..2) Christian Dehnert, Friedrich Gretz, Benjamin Kaminski, Thomas Ströder Tutoraufgabe (Sortieralgorithmus):

Mehr

Datenstrukturen und Algorithmen. Vorlesung 10

Datenstrukturen und Algorithmen. Vorlesung 10 Datenstrukturen und Algorithmen Vorlesung 10 Hashtabelle als Erinnerung Hashtabellen sind Tabellen (Arrays), wo aber die Elemente nicht von links nach rechts eingefügt werden, wie bei typischen Arrays

Mehr

Datenstrukturen und Algorithmen

Datenstrukturen und Algorithmen Joost-Pieter Katoen Datenstrukturen und Algorithmen 1/54 Datenstrukturen und Algorithmen Vorlesung 1: Algorithmische Komplexität Joost-Pieter Katoen Lehrstuhl für Informatik 2 Software Modeling and Verification

Mehr

lim log 2n n = > 0 Da es einen Limes gibt, gibt es auch einen Limes inferior, der gleich diesem Limes ist.

lim log 2n n = > 0 Da es einen Limes gibt, gibt es auch einen Limes inferior, der gleich diesem Limes ist. Prof. aa Dr. Ir. Joost-Pieter Katoen Christian Dehnert, Jonathan Heinen, Thomas Ströder, Sabrina von Styp Aufgabe 1 (O-Notation): Beweisen oder widerlegen Sie die folgenden Aussagen: (3 + 3 + 4 = 10 Punkte)

Mehr

Übersicht. Datenstrukturen und Algorithmen. Übersicht. Heaps. Vorlesung 8: Heapsort (K6) Joost-Pieter Katoen. 7. Mai 2015

Übersicht. Datenstrukturen und Algorithmen. Übersicht. Heaps. Vorlesung 8: Heapsort (K6) Joost-Pieter Katoen. 7. Mai 2015 Datenstrukturen und Algorithmen Vorlesung 8: (K6) 1 Joost-Pieter Katoen Lehrstuhl für Informatik Software Modeling and Verification Group http://moves.rwth-aachen.de/teaching/ss-15/dsal/ 7. Mai 015 3 Joost-Pieter

Mehr

sort hash uncompress merge & mark hash collisions

sort hash uncompress merge & mark hash collisions Julian Arz, Timo Bingmann, Sebastian Schlag INSTITUT FÜR THEORETISCHE INFORMATIK, PROF. SANDERS hash sort... compress uncompress merge & mark hash collisions 1 KIT Julian Universität Arz, des Timo LandesBingmann,

Mehr

Algorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2013 / Vorlesung 5, Donnerstag, 21.

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

Mehr

Vorlesung Informatik 2 Algorithmen und Datenstrukturen

Vorlesung Informatik 2 Algorithmen und Datenstrukturen Vorlesung Informatik 2 Algorithmen und Datenstrukturen (12 Hashverfahren: Verkettung der Überläufer) Prof. Dr. Susanne Albers Möglichkeiten der Kollisionsbehandlung Kollisionsbehandlung: Die Behandlung

Mehr

Informatik II, SS 2016

Informatik II, SS 2016 Informatik II - SS 2016 (Algorithmen & Datenstrukturen) Vorlesung 9 (25.5.2016) Hashtabellen II, Binäre Suchbäume I Algorithmen und Komplexität Hashtabellen mit Chaining Jede Stelle in der Hashtabelle

Mehr

Implementierung von Mengen (und Wörterbücher): Alternative zu Suchbäumen

Implementierung von Mengen (und Wörterbücher): Alternative zu Suchbäumen 5.8 HashVerfahren und Anwendungen Implementierung von Mengen (und Wörterbücher): Alternative zu Suchbäumen hash: zerhacken, Hackfleisch Grundidee: Indexierung der Tabelle mit geeignet transformierten Schlüsselwerten

Mehr

Grundlagen: Algorithmen und Datenstrukturen

Grundlagen: Algorithmen und Datenstrukturen Technische Universität München Fakultät für Informatik Lehrstuhl für Effiziente Algorithmen Dr. Hanjo Täubig Tobias Lieber Sommersemester 2011 Mittelklausur 5. Juli 2011 Grundlagen: Algorithmen und Datenstrukturen

Mehr

Informatik II Hashing

Informatik II Hashing lausthal Informatik II Hashing. Zachmann lausthal University, ermany zach@in.tu-clausthal.de Das Datenbank-Problem "revisited" Lösung bisher: Preprocessing: Elemente 1x sortieren, kostet O(n log n) Laufzeit:

Mehr

Informatik II Hashing

Informatik II Hashing lausthal Das Wörterbuch-Problem Informatik II Hashing. Zachmann lausthal University, ermany zach@in.tu-clausthal.de Das Wörterbuch-Problem (WBP) kann wie folgt beschrieben werden: egeben: Menge von Objekten

Mehr

Informatik II Hashing

Informatik II Hashing lausthal Informatik II Hashing. Zachmann lausthal University, ermany zach@in.tu-clausthal.de Das Wörterbuch-Problem Das Wörterbuch-Problem (WBP) kann wie folgt beschrieben werden: egeben: Menge von Objekten

Mehr

Präsenzübung Datenstrukturen und Algorithmen SS 2014

Präsenzübung Datenstrukturen und Algorithmen SS 2014 Prof. aa Dr. E. Ábrahám F. Corzilius, S. Schupp, T. Ströder Präsenzübung Datenstrukturen und Algorithmen SS 2014 Vorname: Nachname: Studiengang (bitte genau einen markieren): Informatik Bachelor Informatik

Mehr

Hashverfahren I. Algorithmen und Datenstrukturen 251 DATABASE SYSTEMS GROUP

Hashverfahren I. Algorithmen und Datenstrukturen 251 DATABASE SYSTEMS GROUP Hashverfahren I Bisher: Suchen mit Hilfe von Schlüsselvergleichen Jetzt: Stattdessen Adressberechnung Auswertung einer Funktion (Hash- oder Adressfunktion) Vorteil: Suche erfolgt weitgehend unabhängig

Mehr

Heapsort / 1 A[1] A[2] A[3] A[4] A[5] A[6] A[7] A[8]

Heapsort / 1 A[1] A[2] A[3] A[4] A[5] A[6] A[7] A[8] Heapsort / 1 Heap: Ein Array heißt Heap, falls A [i] A [2i] und A[i] A [2i + 1] (für 2i n bzw. 2i + 1 n) gilt. Beispiel: A[1] A[2] A[3] A[4] A[5] A[6] A[7] A[8] Heapsort / 2 Darstellung eines Heaps als

Mehr

Informatik II, SS 2018

Informatik II, SS 2018 Informatik II - SS 2018 (Algorithmen & Datenstrukturen) Vorlesung 4 (30.4.2018) Sortieren IV Algorithmen und Komplexität Analyse Merge Sort Laufzeit T(n) setzt sich zusammen aus: Divide und Merge: O n

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Universität Innsbruck Institut für Informatik Zweite Prüfung 16. Oktober 2008 Algorithmen und Datenstrukturen Name: Matrikelnr: Die Prüfung besteht aus 8 Aufgaben. Die verfügbaren Punkte für jede Aufgabe

Mehr

Ordnen Sie die folgenden Funktionen nach ihrer asymptotischer Komplexität in aufsteigender Reihenfolge: i=1 4i + n = 4 n. i=1 i + 3n = 4 ( n(n+1)

Ordnen Sie die folgenden Funktionen nach ihrer asymptotischer Komplexität in aufsteigender Reihenfolge: i=1 4i + n = 4 n. i=1 i + 3n = 4 ( n(n+1) für Informatik Prof. aa Dr. Ir. Joost-Pieter Katoen Christian Dehnert, Friedrich Gretz, Benjamin Kaminski, Thomas Ströder Tutoraufgabe (Asymptotische Komplexität): Ordnen Sie die folgenden Funktionen nach

Mehr

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

Grundlagen: Algorithmen und Datenstrukturen Grundlagen: Algorithmen und Datenstrukturen Prof. Dr. Hanjo Täubig Lehrstuhl für Effiziente Algorithmen (Prof. Dr. Ernst W. Mayr) Institut für Informatik Technische Universität München Sommersemester 2010

Mehr

Klausur Algorithmen und Datenstrukturen SS August Arbeitszeit 90 min

Klausur Algorithmen und Datenstrukturen SS August Arbeitszeit 90 min TU Ilmenau, Fakultät für Informatik und Automatisierung FG Komplexitätstheorie und Effiziente Algorithmen Univ.-Prof. Dr. M. Dietzfelbinger, Dipl.-Ing. C. Mattern Klausur Algorithmen und Datenstrukturen

Mehr

Algorithmentheorie Treaps

Algorithmentheorie Treaps Algorithentheorie 04 - Treaps Prof. Dr. S. Albers Das Wörterbuch-Proble Gegeben: Universu (U,

Mehr

Eine universelle Klasse von Hash-Funktionen

Eine universelle Klasse von Hash-Funktionen Eine universelle Klasse von Hash-Funktionen Annahmen: U = p, mit Primzahl p und U = {0,, p-1} Seien a {1,, p-1} und b {0,, p-1} Definiere wie folgt Satz: Die Menge ist eine universelle Klasse von Hash-Funktionen..

Mehr

Kollision Hashfunktion Verkettung Offenes Hashing Perfektes Hashing Universelles Hashing Dynamisches Hashing. 4. Hashverfahren

Kollision Hashfunktion Verkettung Offenes Hashing Perfektes Hashing Universelles Hashing Dynamisches Hashing. 4. Hashverfahren 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 von

Mehr

Teil 1: Suchen. M.O.Franz, Oktober 2007 Algorithmen und Datenstrukturen - Suchen 1-1

Teil 1: Suchen. M.O.Franz, Oktober 2007 Algorithmen und Datenstrukturen - Suchen 1-1 Teil 1: Suchen Problemstellung Elementare Suchverfahren Hashverfahren Idee Hashfunktion Hashverfahren mit Verkettung Offene Hashverfahren Dynamische Hashverfahren Binäre Suchbäume Ausgeglichene Bäume B-Bäume

Mehr

Hashing. Überblick Aufgabe Realisierung

Hashing. Überblick Aufgabe Realisierung Überblick Aufgabe Realisierung Aufgabe Realisierung Anforderungen Wahl einer Hashfunktion mit Verkettung der Überläufer Offene Universelles 2/33 Überblick Aufgabe Realisierung Aufgabe Dynamische Verwaltung

Mehr

Algorithmen und Datenstrukturen Hashverfahren

Algorithmen und Datenstrukturen Hashverfahren Algorithmen und Datenstrukturen Hashverfahren Matthias Teschner Graphische Datenverarbeitung Institut für Informatik Universität Freiburg SS 12 Überblick Prinzip Details Anwendungen Motivation Hashverfahren

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

Ordnen Sie die folgenden Funktionen nach ihrer asymptotischer Komplexität in aufsteigender Reihenfolge: i=1 4i + n = 4 n. i=1 i + 3n = 4 ( n(n+1)

Ordnen Sie die folgenden Funktionen nach ihrer asymptotischer Komplexität in aufsteigender Reihenfolge: i=1 4i + n = 4 n. i=1 i + 3n = 4 ( n(n+1) für Informatik Prof. aa Dr. Ir. Joost-Pieter Katoen Tutoriumslösung - Übung (Abgabe 9.04.05) Christian Dehnert, Friedrich Gretz, Benjamin Kaminski, Thomas Ströder Tutoraufgabe (Asymptotische Komplexität):

Mehr

Grundlagen: Algorithmen und Datenstrukturen

Grundlagen: Algorithmen und Datenstrukturen Grundlagen: Algorithmen und Datenstrukturen Prof. Dr. Hanjo Täubig Lehrstuhl für Effiziente Algorithmen (Prof. Dr. Ernst W. Mayr) Institut für Informatik Technische Universität München Sommersemester 2010

Mehr

Algorithmen I - Tutorium 28 Nr. 6

Algorithmen I - Tutorium 28 Nr. 6 Algorithmen I - Tutorium 28 Nr. 6 08.06.2017: Spaß mit Sortieren, Aufgaben und Wiederholung Marc Leinweber marc.leinweber@student.kit.edu INSTITUT FÜR THEORETISCHE INFORMATIK (ITI), PROF. DR. JÖRN MÜLLER-QUADE

Mehr

Informatik II, SS 2018

Informatik II, SS 2018 Informatik II - SS 2018 (Algorithmen & Datenstrukturen) Vorlesung 8 (14.5.2018) Hashtabellen III Algorithmen und Komplexität Hashtabellen mit Chaining Jede Stelle in der Hashtabelle zeigt auf eine verkette

Mehr

Karlsruher Institut für Technologie Institut für Theoretische Informatik. Übungsklausur Algorithmen I

Karlsruher Institut für Technologie Institut für Theoretische Informatik. Übungsklausur Algorithmen I Vorname: Karlsruher Institut für Technologie Institut für Theoretische Informatik Prof. Jörn Müller-Quade 21.06.2017 Übungsklausur Algorithmen I Aufgabe 1. Kleinaufgaben 8 Punkte Aufgabe 2. Hashing 6 Punkte

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

Informatik II Prüfungsvorbereitungskurs

Informatik II Prüfungsvorbereitungskurs Informatik II Prüfungsvorbereitungskurs Tag 4, 23.6.2016 Giuseppe Accaputo g@accaputo.ch 1 Programm für heute Repetition Datenstrukturen Unter anderem Fragen von gestern Point-in-Polygon Algorithmus Shortest

Mehr

Datenstrukturen und Algorithmen

Datenstrukturen und Algorithmen Datenstrukturen und Algorithmen VO 708.031 29.11.2012 elmar.rueckert@igi.tugraz.at 1 WH: Untere Schranke für SorGeren Die bisher betrachteten schnellen Sor$eralgorithmen (MergeSort, HeapSort, QuickSort)

Mehr

U h(k 1 ) h(k 4 ) k 1 h(k 3 )

U h(k 1 ) h(k 4 ) k 1 h(k 3 ) 92 Kapitel 8 Hashing Hashing ist ein anderes Vorgehen, das auch ohne Baumstrukturen ein effizientes Suchen ermöglicht. Wie bei Bucketsort ist auch hier eine der grundsätzlichen Eigenschaften, dass Hashing

Mehr

Hashing. Übersicht. 5 Hashing

Hashing. Übersicht. 5 Hashing Übersicht 5 Hashing Hashtabellen Hashing with Chaining Universelles Hashing Hashing with Linear Probing Anpassung der Tabellengröße Perfektes Hashing Diskussion / Alternativen H. Täubig (TUM) GAD SS 14

Mehr

NAME, VORNAME: Studiennummer: Matrikel:

NAME, VORNAME: Studiennummer: Matrikel: TU Ilmenau, Fakultat IA Institut für Theoretische Informatik FG Komplexitätstheorie und Effiziente Algorithmen Prof. Dr. (USA) M. Dietzfelbinger Klausur Algorithmen und Datenstrukturen SS08, Ing.-Inf.

Mehr

Java. public D find(k k) { Listnode K, D n = findnode(k); if(n == null) return null; return n.data; Java

Java. public D find(k k) { Listnode K, D n = findnode(k); if(n == null) return null; return n.data; Java Einführung Elementare Datenstrukturen (Folie 27, Seite 15 im Skript) Java Java public D find(k k) { Listnode K, D n = findnode(k); if(n == null) return null; return n.data; } protected Listnode K, D findnode(k

Mehr

Beweis: Die obere Schranke ist klar, da ein Binärbaum der Höhe h höchstens

Beweis: Die obere Schranke ist klar, da ein Binärbaum der Höhe h höchstens Beweis: Die obere Schranke ist klar, da ein Binärbaum der Höhe h höchstens h 1 2 j = 2 h 1 j=0 interne Knoten enthalten kann. EADS 86/600 Beweis: Induktionsanfang: 1 ein AVL-Baum der Höhe h = 1 enthält

Mehr

Übung 3 Musterlösung

Übung 3 Musterlösung Prof aa Dr Ir Joost-Pieter Katoen Sebastian Junges, Benjamin Kaminski, David Korzeniewski, Tim Quatmann Hinweise: Übung 3 Musterlösung Die Lösungen müssen bis Donnerstag, den 03 Mai um 16:00 Uhr in den

Mehr

Übungsklausur Algorithmen I

Übungsklausur Algorithmen I Name: Vorname: Matrikelnr.: Tutorium: Jun.-Prof. Hofheinz, Jun.-Prof. Meyerhenke (ITI, KIT) 08.06.2015 Übungsklausur Algorithmen I Aufgabe 1. (Algorithm Engineering) [2 Punkte] Nennen Sie zwei Konzepte,

Mehr

Übungsklausur Algorithmen I

Übungsklausur Algorithmen I Universität Karlsruhe, Institut für Theoretische Informatik Prof. Dr. P. Sanders 26.5.2010 svorschlag Übungsklausur Algorithmen I Hiermit bestätige ich, dass ich die Klausur selbständig bearbeitet habe:

Mehr

Hashing Hashfunktionen Kollisionen Ausblick. Hashverfahren. Dank an: Beate Bollig, TU Dortmund! 1/42. Hashverfahren

Hashing Hashfunktionen Kollisionen Ausblick. Hashverfahren. Dank an: Beate Bollig, TU Dortmund! 1/42. Hashverfahren Dank an: Beate Bollig, TU Dortmund! 1/42 Hashing Überblick Aufgabe Realisierung Aufgabe Realisierung Anforderungen Wahl einer Hashfunktion mit Verkettung der Überläufer Offene Universelles Hashing 2/42

Mehr

Lösungsvorschläge zur Klausur 1661 Datenstrukturen I

Lösungsvorschläge zur Klausur 1661 Datenstrukturen I Lösungsvorschläge zur Klausur 1661 Datenstrukturen I 23.09.2006 Seite 2 Lösungsvorschläge zur Klausur vom 23.09.2006 Kurs 1661 Datenstrukturen I Aufgabe 1 (a) algebra pointset sorts pointset, point, real,

Mehr

Informatik I 5. Kapitel. Hashverfahren. Hashverfahren. Hashverfahren. Rainer Schrader. 3. Juni Gliederung

Informatik I 5. Kapitel. Hashverfahren. Hashverfahren. Hashverfahren. Rainer Schrader. 3. Juni Gliederung Informatik I 5. Kapitel Rainer Schrader Zentrum für Angewandte Informatik Köln 3. Juni 2008 1 / 86 2 / 86 Gliederung Adressberechnung durch Hashing Hashfunktionen Kollisionsbehandlung Anwendung von Hashfunktionen

Mehr

Fibonacci-Suche. Informatik I. Fibonacci-Suche. Fibonacci-Suche. Einführung. Rainer Schrader. 24. Mai 2005

Fibonacci-Suche. Informatik I. Fibonacci-Suche. Fibonacci-Suche. Einführung. Rainer Schrader. 24. Mai 2005 Fibonacci-Suche Informatik I Einführung Rainer Schrader Zentrum für Angewandte Informatik Köln 4. Mai 005 Grundidee wie bei der Binärsuche, aber andere Aufteilung Fibonacci-Zahlen: F 0 = 0 F 1 = 1 F m

Mehr