Informatik II, SS 2016
|
|
|
- Ingrid Siegel
- vor 6 Jahren
- Abrufe
Transkript
1 Informatik II - SS 2016 (Algorithmen & Datenstrukturen) Vorlesung 8 ( ) Hashtabellen I Algorithmen und Komplexität
2 Dictionary mit sortiertem Array Laufzeiten: create: O(1) insert: O(n) find: O(log n) delete: O(n) Können wir alle Operationen schnell machen? und das find noch schneller? 2
3 Direkte Adressierung Mit einem Array können wir alles schnell machen,...falls das Array gross genug ist. Annahme: Schlüssel sind ganze Zahlen zwischen 0 und M 1 0 None 1 None 2 Value 1 3 None 4 Value None2 5 None 6 Yannic None find(2) Value 1 insert(6, Yannic ) delete(4) 7 Value 3 8 None M 1 None 3
4 Direkte Adressierung : Probleme 1. Direkte Adressierung benötigt zu viel Platz! Falls Schlüssel ein beliebiger int (32 bit) sein kann: Wir benötigen ein Array der Grösse Bei 64 bit Integers sind s sogar schon mehr als Was tun, wenn die Schlüssel keine ganzen Zahlen sind? Wo kommt das (key,value)-paar ( Alex, Assistent ) hin? Wo soll der Schlüssel gespeichert werden? Pythagoras: Alles ist Zahl Alles kann als Folge von Bits abgespeichert werden: Interpretiere Bit-Folge als ganze Zahl Verschärft das Platz-Problem noch zusätzlich! 4
5 Hashing : Idee Problem Riesiger Raum S an möglichen Schlüsseln Anzahl n der wirklich benutzten Schlüssel ist viel kleiner Wir möchten nur Arrays der Grösse n (resp. O(n)) verwenden Wie können wir M Schlüssel auf O n Array-Positionen abbilden? M mögliche Schlüssel zufällige Abbildung n Schlüssel 5
6 Hashfunktionen Schlüsselraum S, S = M (alle möglichen Schlüssel) Arraygrösse m ( Anz. Schlüssel, welche wir max. speichern wollen) Hashfunktion h: S {0,, m 1} Bildet Schlüssel vom Schlüsselraum S in Arraypositionen ab h sollte möglichst nahe bei einer zufälligen Funktion sein alle Elemente in {0,, m 1} etwa gleich vielen Schlüsseln zugewiesen sein ähnliche Schlüssel sollten auf verschiedene Positionen abgebildet h sollte möglichst schnell berechnet werden können Wenn möglich in Zeit O(1) Wir betrachten es im folgenden als Grundoperation (Kosten = 1) 6
7 Funktionsweise Hashtabellen 1. insert(k 1, v 1 ) 2. insert(k 2, v 2 ) 3. insert(k 3, v 3 ) Kollision! Hashtabelle 0 None 1 None k 3 h k 3 = 3 2 None v 1 3 None 4 None 5 None 6 None v 2 7 None k 1 8 None k 2 m 1 None 7
8 Hashtabellen : Kollisionen Kollision: Zwei Schlüssel k 1, k 2 kollidieren, falls h k 1 = h(k 2 ). Was tun bei einer Kollision? Können wir Hashfunktionen wählen, bei welchen es keine Kollisionen gibt? Eine andere Hashfunktion nehmen? Weitere Ideen? 8
9 Hashtabellen : Kollisionen Kollisionen Lösungsansätze Annahme: Schlüssel k 1 und k 2 kollidieren 1. Speichere beide (key,value)-paare an die gleiche Stelle Die Hashtabelle muss an jeder Position Platz für mehrere Elemente bieten Wir wollen die Hashtabelle aber nicht einfach vergrössern (dann könnten wir gleich mit einer grösseren Tabelle starten ) Lösung: Verwende verkettete Listen 2. Speichere zweiten Schlüssel an eine andere Stelle Kann man zum Beispiel mit einer zweiten Hashfunktion erreichen Problem: An der alternativen Stelle könnte wieder eine Kollision auftreten Es gibt mehrere Lösungen Eine Lösung: Verwende viele mögliche neue Stellen (Man sollte sicherstellen, dass man die meistens nicht braucht ) 9
10 Hashtabellen mit Chaining Jede Stelle in der Hashtabelle zeigt auf eine verkette Liste Hashtabelle 0 None 1 None 2 None 3 4 None 5 None 6 None 7 8 None m 1 None v 1 v 2 v 3 Platzverbrauch: Tabellengrösse m, Anz. Elemente n 10
11 Laufzeit Hashtabellen-Operationen Zuerst, um s einfach zu machen, für den Fall ohne Kollisionen create: insert: find: delete: Solange keine Kollisionen auftreten, sind Hashtabellen extrem schnell (falls die Hashfunktion schnell ausgewertet werden kann) Wir werden sehen, dass dies auch mit Kollisionen gilt 11
12 Laufzeit mit Chaining Verkettete Listen an allen Positionen der Hashtabelle create: insert: find: delete: 12
13 Funktionsweise Hashtabellen Schlechtester Fall bei Hashing mit Chaining Alle Schlüssel, welche vorkommen, haben den gleichen Hashwert Ergibt eine verkettete Liste der Länge n Hashtabelle Wahrscheinlichkeit bei zufälligem h: k 1 h k 1 = 3 0 None 1 None 2 None 3 4 None 5 None 6 None 7 None 8 None k 2 m 1 None 13
14 Länge der verketten Liste Kosten von find und delete hängt von der Länge der entprechenden Liste ab Wie lang werden die Listen Annahme: Grösse der Hashtabelle m, Anzahl Elemente n Weitere Annahme: Hashfunktion h verhält sich wie zufällige Funktion Listenlängen entspricht folgendem Zufallsexperiment m Urnen und n Kugeln Jede Kugel wird (unabhängig) in eine zufällige Urne geworfen Längste Liste = maximale Anz. Kugeln in der gleichen Urne Durchschnittliche Listenlänge = durchschn. Anz. Kugeln pro Urne m Urnen, n Kugeln durschn. #Kugeln pro Urne: n Τm 14
15 Balls and Bins n Kugeln m Urnen (Bins) Worst-case Laufzeit = Θ max #Kugeln pro Urne mit hoher Wahrscheinlichkeit O log n bei n m also O log log n n Τm + log n log log n Erwartete Laufzeit (für jeden Schlüssel): Schlüssel in Tabelle: entpricht der #Kugeln in der Urne einer zufälligen Kugel Schlüssel nicht in Tabelle: #Kugeln einer zufälligen Urne 15
16 Erwartete Laufzeit von Find Load α der Hashtabelle: Kosten einer Suche: α n m Suche nach einem Schlüssel x, welcher nicht in der Hashtabelle ist h(x) ist eine uniform zufällige Position erwartete Listenlänge = durchschn. Listenlänge = α Erwartete Laufzeit: 16
17 Erwartete Laufzeit von Find Load α der Hashtabelle: Kosten einer Suche: α n m Suche nach einem Schlüssel x, welcher in der Hashtabelle ist Wieviele Schlüssel y x sind in der Liste von x? Die anderen Schlüssel sind zufällig verteilt, also entspricht die erwartete Anzahl y x der erwarteten Länge einer zufälligen Liste in einer Hashtabelle mit n 1 Einträgen. Das sind n 1 m < n m = α Erw. Listenlänge von x < 1 + α Erwartete Laufzeit: 17
18 Laufzeiten Hashing mit Chaining Zusammenfassung Laufzeiten: create & insert: Immer Laufzeit O 1 (auch im Worst Case, unabhängig von α) find & delete: Worst Case: Θ(n) Worst Case mit hoher Wahrsch. (bei zufälligem h): O α + log n log log n Erwartete Laufzeit (für bestimmten Schlüssel x): O 1 + α gilt für erfolgreiche und nicht erfolgreiche Suchen Falls α = O 1 (d.h., Hashtabelle hat Grösse Ω n ), dann ist das O(1) Hashtabellen sind extrem effizient und haben typischerweise O 1 Laufzeit für alle Operationen. 18
19 Kürzere Listenlängen Idee: Benutze zwei Hashfunktionen h 1 und h 2 Füge Schlüssel x in die kürzere der beiden Listen bei h 1 (x) und h 2 x ein Balls and Bins: Lege Kugel in Urne mit weniger Kugeln Bei n Kugeln, m Urnen: maximale Anz. Kugeln pro Urne (whp): Τ n m + O(log log m) Bekannt als power of two choices 19
20 Gute Hashfunktionen Wie wählt man eine gute Hashfunktion? Was sollte eine gute Hashfunktion erfüllen? Im Prinzip sollte sie die gleichen Eigenschaften wie eine zufällige Funktion haben: Mapping von verschiedenen Schlüsseln ist unabhängig (nicht klar, was das bei einer deterministischen Funktion genau heissen soll) Mapping ist uniform zufällig (alle Hashwerte kommen gleich oft vor) Man kann diese Bedingungen meistens nicht überprüfen Falls man etwas über die Verteilung der Schlüssel weiss, kann man das allenfalls ausnützen Es gibt aber zum Glück einfache Heuristiken, welche in der Praxis gut funktionieren 20
21 Divisionsmethode Wähle Hashfunktion als h x = x mod m Alle Werte zwischen 0 und m 1 kommen gleich oft So gut, das möglich ist Vorteile: Sehr einfache Funktion Nur eine Division kann man schnell berechnen Funktioniert oft recht gut, solange man m geschickt wählt... besprechen wir gleich... Bemerkung: Falls die Schlüssel keine ganzen Zahlen sind, kann man den Bitstring als ganze Zahl interpretieren 21
22 Divisionsmethode Wähle Hashfunktion als h x = x mod m Wahl des Divisors m Man könnte h(x) besonders schnell berechnen falls m = 2 k Das ist aber keine gute Wahl, da man dann einfach die letzten k Bits als Hashwert bekommt! Der Hashwert sollte von allen Bits abhängen Am besten wählt man m als Primzahl Eine Primzahl m, so dass m = 2 k 1 ist auch keine gute Idee siehe Übungsblatt 4 Am besten: Primzahl m, welche nicht nahe bei einer 2er-Potenz ist 22
23 Multiplikationsmethode Wähle Hashfunktion als h x = m Ax Ax A ist eine Konstante zwischen 0 und 1 Bemerkungen Hier kann man m = 2 k wählen (für Integer k) Falls Integers von 0 bis 2 w 1 gehen, wählt man typischerweise einen Integer s {0,, 2 w 1} und A = s 2 w 23
24 Multiplikationsmethode Wähle Hashfunktion als h x = m Ax Ax A ist eine Konstante zwischen 0 und 1 Bemerkungen Hier kann man m = 2 k wählen (für Integer k) Falls Integers von 0 bis 2 w 1 gehen, wählt man typischerweise einen Integer s {0,, 2 w 1} und A = s 2 w Grundsätzlich funktioniert jedes A, in [Knuth; The Art of Comp. Progr. Vol. 3] wird empfohlen, dass A 5 1 =
25 Zufällige Hashfunktionen Falls h zufällig aus allen möglichen Funktionen ausgewählt wird: x 1, x 2 Pr h x 1 = h x 2 = 1 m Problem: eine solche Funktion kann nicht effizient repräsentiert und ausgewertet werden Idee: Im Wesentlichen braucht man eine Tabelle mit allen möglichen Schlüsseln Eine Funktion zufällig aus einem kleineren Bereich wählen z.b. bei Multiplikationsmethode h x = m Ax Ax einfach den Parameter A zufällig wählen Nicht ganz so gut, wie eine uniform zufällige Funktion, aber wenn man s richtig macht, funktioniert die Idee universelles Hashing 25
26 Universelles Hashing I Definition: Sei S die Menge der mögl. Schlüssel und m die Grösse der Hashtab. Sei H eine Menge von Hashfunktionen S {0,, m 1} Die Menge H heisst c-universell, falls x, y S x y h H h x = h y c H m Mit anderen Worten, falls man h zufällig aus H wählt, dann gilt x, y S x y Pr h x = h y c m 26
27 Universelles Hashing II Theorem: Sei H eine c-universelle Menge von Hashfkt. S {0,, m 1} Sei X S eine beliebige Menge von Schlüsseln Sei h H eine zufällig gewählte Fkt. aus H Für ein gegebenes x X sei B x y X h y = h(x) Im Erwartungswert hat B x Grösse 1 + c X m Konsequenz: Im Erwartungswert sind alle Listen kurz! 27
28 Universelles Hashing III Gute universelle Mengen von Hashfunktionen existieren! Beispiele: m beliebig, p: Primzahl mit p > m und p S H: Menge der Fkt. h a,b x = a x + b mod p mod m wobei a, b S m beliebig, k = log m S, Parameter a S Basis m-darstellung von a, x: a = σ k 1 i=0 a i m i, x = σ k 1 i=0 x i m i H: Menge der Fkt. h a x = σ k 1 i=0 a i x i mod m 28
29 Hashing mit offener Adressierung Ziel: Speichere alles direkt in der Hashtabelle (im Array) offene Adressierung = geschlossenes Hashing keine Listen Grundidee: Bei Kollisionen müssen alternative Einträge zur Verfügung stehen Erweitere Hashfunktion zu h: S 0,, m 1 {0,, m 1} Für jedes x S sollte h(x, i) durch alle m Werte gehen (für versch. i) Zugriff (schreiben/lesen) zu Element mit Schlüssel x: Versuche der Reihe nach an den Positionen h x, 0, h x, 1, h x, 2,, h(x, m 1) 29
30 Lineares Sondieren Idee: Falls h x besetzt, versuche die nachfolgende Position: für i = 0,, m 1 h x, i = h x + i Beispiel: Füge folgende Schlüssel ein x 1, h x 1 = 3 x 2, h x 2 = 5 x 3, h x 3 = 3 x 4, h x 4 = 8 x 5, h x 5 = 4 x 6, h x 6 = 6 mod m m 1 30
31 Lineares Sondieren Vorteile: sehr einfach zu implementieren alle Arraypositionen werden angeschaut gute Cache-Lokalität Nachteile: Sobald es Kollisionen gibt, bilden sich Cluster Cluster wachsen, wenn man in irgendeine Position des Clusters hineinhasht Cluster der Grösse k wachsen in jedem Schritt mit Wahrscheinlichkeit (k + 1) Τm Je grösser die Cluster, desto schneller wachsen sie!! 31
32 Quadratisches Sondieren Idee: Nehme Sequenz, welche nicht zu Cluster führt: h x, i = h x + c 1 i + c 2 i 2 mod m für i = 0,, m 1 Vorteil: ergibt keine zusammenhängenden Cluster deckt bei geschickter Wahl der Parameter auch alle m Positionen ab Nachteil: kann immer noch zu einer Art Cluster-Bildung führen Problem: der erste Hashwert bestimmt die ganze Sequenz! Asympt. im besten Fall so gut, wie Hashing mit verketteten Listen 32
33 Doppel-Hashing Ziel: Verwende mehr als m verschiedene Abfolgen von Positionen Idee: Benutze zwei Hashfunktionen h x, i = h 1 x + i h 2 x mod m Vorteile: Sondierungsfunktion hängt in zwei Arten von x ab Vermeidet die Nachteile von linearem und quadr. Sondieren Wahrscheinlichkeit, dass zwei Schlüssel x und x die gleiche Positionsfolge erzeugen: h 1 x = h 1 x h 2 x = h 2 x WSK = 1 m 2 Funktioniert in der Praxis sehr gut! 33
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
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
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
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
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
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
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
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
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
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
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
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,
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:
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
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
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
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
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
Ü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
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
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
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..
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
Themen. Hashverfahren. Stefan Szalowski Programmierung II Hashverfahren
Themen Hashverfahren Einleitung Bisher: Suchen in logarithmischer Zeit --> Binärsuche Frage: Geht es eventuell noch schneller/effektiver? Finden von Schlüsseln in weniger als logarithmischer Zeit Wichtig
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
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
Ü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,
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:
Übersicht. Datenstrukturen und Algorithmen. Einführung (II) Einführung (I) Vorlesung 12: Hashing I (K11) Counting Sort. Joost-Pieter Katoen
Übersicht Datenstrukturen und Algorithen Vorlesung 2: (K) Joost-Pieter Katoen Lehrstuhl für Inforatik 2 Software Modeling and Verification Group https://oves.rwth-aachen.de/teaching/ss-8/dsal/ 4. Juni
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
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
Datenstrukturen & Algorithmen Lösungen zu Blatt 5 FS 14
Eidgenössische Technische Hochschule Zürich Ecole polytechnique fédérale de Zurich Politecnico federale di Zurigo Federal Institute of Technology at Zurich Institut für Theoretische Informatik 26. März
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
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
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
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
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
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:
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
Algorithmen und Datenstrukturen II: Hashverfahren
Algorithmen und Datenstrukturen II: Hashverfahren Fakultät für Informatik und Mathematik Hochschule München Letzte Änderung: 10.05.2017 16:21 Inhaltsverzeichnis Hashverfahren....................................
Ü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:
Algorithmen und Datenstrukturen II: Hashverfahren
Algorithmen und Datenstrukturen II: Hashverfahren Prof. Dr. Oliver Braun Letzte Änderung: 10.05.2017 16:21 Algorithmen und Datenstrukturen II: Hashverfahren 1/28 Hashverfahren bisher jeder Datensatz durch
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
4. Übung zu Algorithmen I 17. Mai 2017
4. Übung zu Algorithmen I 17. Mai 2017 Björn Kaidel [email protected] (mit Folien von Julian Arz, Timo Bingmann, Lisa Kohl, Christian Schulz, Sebastian Schlag und Christoph Striecks) Organisatorisches
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
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
Algorithmen und Datenstrukturen 1 VU 6.0 Nachtragstest SS Oktober 2014
Technische Universität Wien Institut für Computergraphik und Algorithmen Arbeitsbereich für Algorithmen und Datenstrukturen 186.813 Algorithmen und Datenstrukturen 1 VU 6.0 Nachtragstest SS 2014 22. Oktober
Übung Algorithmen und Datenstrukturen
Übung Algorithmen und Datenstrukturen Sommersemester 2017 Patrick Schäfer, Humboldt-Universität zu Berlin Agenda: Kürzeste Wege, Heaps, Hashing Heute: Kürzeste Wege: Dijkstra Heaps: Binäre Min-Heaps Hashing:
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:
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
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
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
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... ˆΦ =
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
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
Algorithmen und Datenstrukturen (Informatik II) SS Klausur
Lehrstuhl für Algorith. und Datenstrukturen Prof. Dr. Hannah Bast Axel Lehmann Algorithmen und Datenstrukturen (Informatik II) SS 2013 http://ad-wiki.informatik.uni-freiburg.de/teaching Klausur Mittwoch
Karlsruher Institut für Technologie. Klausur Algorithmen I
Klausur-ID: Vorname: Matrikelnummer: Karlsruher Institut für Technologie Institut für Theoretische Informatik Prof. Jörn Müller-Quade 11. April 2018 Klausur Algorithmen I Aufgabe 1. Kleinaufgaben 15 Punkte
Klausur Algorithmen und Datenstrukturen
Technische Universität Braunschweig Wintersemester 2014/2015 Institut für Betriebssysteme und Rechnerverbund Abteilung Algorithmik Prof. Dr. Sándor P. Fekete Dr. Christian Scheffer Klausur Algorithmen
Kap. 5 Hashing. 15./16. VO DAP2 SS /18. Juni 2009
Kap. 5 Hashing nach Übungstest Professor Dr. Lehrstuhl für Algorithm Engineering, LS11 Fakultät für Informatik, TU Dortmund 15./16. VO DAP2 SS 2009 16./18. Juni 2009 1 Linux-Kurs 2. Teil Beginn: Di 16.6.
