Algorithmen und Datenstrukturen (Th. Ottmann und P. Widmayer) Folien: Hashverfahren Autor: Sven Schuierer
|
|
- Franz Waldfogel
- vor 5 Jahren
- Abrufe
Transkript
1 Alorithmen und Datenstrukturen (Th. Ottmann und P. Widmayer) Folien: Hashverfahren Autor: Sven Schuierer Institut für Informatik Geores-Köhler-Allee Albert-Ludwis-Universität Freibur
2 Hashverfahren Wörterbuchproblem: Suchen, Einfüen, Entfernen von Datensätzen (Schlüsseln) Ort des Datensatzes d: Berechnun aus dem Schlüssel s von d ) keine Verleiche ) konstante Zeit Datenstruktur: lineares Feld (Array) der Größe m Hashtabelle Schlüssel s i m-2 m-1 AD Hashverfahren Sven Schuierer, 12. Februar
3 Hashverfahren Beispiele Beispiele: Compiler i int 0x87C50FA4 j int 0x87C50FA8 x double 0x87C50FAC name. Strin 0x87C50FB2 Umebunsvariablen (Schlüssel,Attribut) Liste EDITOR=emacs GROUP=mitarbeiter HOST=vulcano HOSTTYPE=sun4 LPDEST=hp5 MACHTYPE=sparc. ausführbare Proramme PATH= /bin:/usr/local/nu/bin: /usr/local/bin:/usr/bin:/bin: ::: AD Hashverfahren Sven Schuierer, 12. Februar
4 Hashverfahren Probleme 1. Größe der Hashtabelle Nur eine kleine Teilmene S aller mölichen Schlüssel (des Universums) U kommen vor 2. Berechnun der Adresse eines Datensatzes Schlüssel sind keine anzen Zahlen Index hänt von der Größe der Hashtabelle ab In Java: public class Object f. public int hashcode() f :::. Das Universum U sollte mölichst leichmäßi auf die Zahlen 2 31 ;:::; verteilt werden AD Hashverfahren Sven Schuierer, 12. Februar
5 Hashfunktion Schlüsselmene S Hashsum U code für Univeraller mölichen Schlüs- sel Hashfunktion h 0;:::;m 1 Hashtabelle T (H(U) [ 2 31 ; ] f1;:::;0) h(s)= Hashadresse h(s) = h(s 0 ) () s und s sind Synonyme bzl. h Adreßkollision AD Hashverfahren Sven Schuierer, 12. Februar
6 Hashverfahren Beispiel für U: alle Namen in Java mit Läne 40 ) juj = Falls juj > m: Adreßkollisionen unvermeidlich Hashverfahren: 1. Wahl einer mölichst uten Hash-Funktion 2. Strateie zur Auflösun von Adreßkollisionen Beleunsfaktor = # espeicherte Schlüssel Größe der Hash-Tabelle = jsj m = n m Annahme: Tabellenröße m ist fest AD Hashverfahren Sven Schuierer, 12. Februar
7 Implementation in Java class TableEntry f private Object key; private Object value; abstract class HashTable f private TableEntry[] tableentry; private int capacity; = Konstruktor = HashTable (int capacity) f this.capacity = capacity; tableentry = new TableEntry [capacity]; for (int i = 0; i <= capacity-1; i++) tableentry[i] = null; = die Hashfunktion = protected abstract int h (Object key); = fuee Element mit Schlüssel key und Wert value ein (falls nicht vorhanden) = public abstract void insert (Object key, Object value); = entferne Element mit Schlüssel key (falls vorhanden) = public abstract void delete (Object key); = suche Element mit Schlüssel key = public abstract Object search (Object key); // class hashtable AD Hashverfahren Sven Schuierer, 12. Februar
8
9 Wahl der Hash-Funktion leichte und schnelle Berechenbarkeit leichmäßie Verteilun der Daten (Beispiel: Compiler) 1. Divisions-Rest-Methode Wahl von m? h(k) = k mod m Beispiele: a) m erade, letztes Bit drückt Sachverhalt aus (z.b. 0 = weiblich, 1 = männlich) ) h(k) erade, k erade b) m = 2 p ) h(k) liefert p niedristen Dualziffern von k Reel: Wähle m prim mit m 6= r i j, 0 j r 1, r = Radix der Darstellun AD Hashverfahren Sven Schuierer, 12. Februar
10 Multiplikative Methode Wähle Konstante, 0 < < 1 1. Berechne k mod 1 = k bkc 2. h(k) = bm(k mod 1)c Wahl von m unkritisch, wähle m = 2 p : Berechnun von h(k): 0, r 1, k r 0 p Bits = h(k) AD Hashverfahren Sven Schuierer, 12. Februar
11 Beispiel: p 5 1 = 0: k = m = h(k) = b10000( :61803 :::mod 1)c = b10000(76300; ::: mod 1)c = b41:151 :::c=41 8-1
12 3. Universelles Hashin Problem: h fest ewählt ) es ibt S U mit vielen Kollisionen Idee des universellen Hashin: Wähle Hashfunktion h zufälli H endliche Mene von Hashfunktionen h 2 H : U! f0;:::;m 1 Definition: H heißt universell, wenn für beliebie x; y 2 U ilt: jfh 2 H j h(x) = h(y)j jhj 1 m Folerun: x; y 2 U beliebi, H universell, h 2 H zufälli Pr H (h(x) = h(y)) 1 m AD Hashverfahren Sven Schuierer, 12. Februar
13 Universelles Hashin Beispiel Hashtabelle T der Größe 3, juj = 5 Betrachte die 20 Funktionen (Mene H): x + 0 2x + 0 3x + 0 4x + 0 x + 1 2x + 1 3x + 1 4x + 1 x + 2 2x + 2 3x + 2 4x + 2 x + 3 2x + 3 3x + 3 4x + 3 x + 4 2x + 4 3x + 4 4x + 4 (mod 5) (mod 3) und die Schlüssel 1 und 4 Es ilt: (1 1+0) mod 5 mod 3 = 1 = (1 4+0) mod 5 mod 3 (1 1+4) mod 5 mod 3 = 0 = (1 4+4) mod 5 mod 3 (4 1+0) mod 5 mod 3 = 1 = (4 4+0) mod 5 mod 3 (4 1+4) mod 5 mod 3 = 0 = (4 4+4) mod 5 mod 3 AD Hashverfahren Sven Schuierer, 12. Februar
14 Universelles Hashin Definition (x; y; h) = ( 1 falls h(x) = h(y) und x 6= y 0 sonst Erweiterun von auf Menen S U und G H: (x; S;h) = X s2s(x; s; h) (x; y; G) = X h2g (x; y; h) Folerun: H ist universell, wenn für alle x; y 2 U (x; y; H) jhj m AD Hashverfahren Sven Schuierer, 12. Februar
15 Hashin mit Verkettun der Überläufer Schlüssel werden in Überlauflisten espeichert h(k) = k mod Hashtabelle T Zeier Überläufer 19 AD Hashverfahren Sven Schuierer, 12. Februar
16 Verkettun der Überläufer Suchen nach Schlüssel k Berechne h(k) und Überlaufliste T [h(k)] Suche nach k in der Überlaufliste Einfüen eines Schlüssels k Suchen nach k (erfollos) Einfüen in die Überlaufliste Entfernen eines Schlüssels k Suchen nach k (erfolreich) Entfernen aus Überlaufliste ) Reine Listenoperationen AD Hashverfahren Sven Schuierer, 12. Februar
17 Implementation in Java class ChainedTableEntry extends TableEntry f private ChainedTableEntry next; class ChainedHashTable extends HashTable f = die Hashfunktion = public int h (Object key) f return key.hashcode () % capacity ; = suche key in der Hashtabelle = public Object search (Object key) f ChainedTableEntry p; p = (ChainedTableEntry) tableentry [h(key)]; = Gehe die Liste durch bis Ende erreicht oder key efunden = while (p!= null &&! p.key.equals(key)) f p = p.next; = Gebe Erebnis zurück = if (p!= null) return p.key; else return null; AD Hashverfahren Sven Schuierer, 12. Februar
18 Implementation in Java = fuee ein Element mit Schlüssle key und Wert value ein (falls nicht vorhanden) = public void insert (Object key, Object value) f ChainedTableEntry entry = new ChainedTableEntry(key, value); = Hole den Tabelleneintra für key = int k = h (key); ChainedTableEntry p; p = (ChainedTableEntry) tableentry [k]; if (p == null)f tableentry[k] = entry; return ; = Suche nach key = while (! p.key.equals(key) && p.next!= null) f p = p.next; = Fuee das Element ein (falls nicht vorhanden) = if (! p.key.equals(key)) p.next = entry; AD Hashverfahren Sven Schuierer, 12. Februar
19 Implementation in Java = entferne das Element mit Schluessel key (falls vorhanden) = public void delete (Object key) f int k = h (key); ChainedTableEntry p; p = (ChainedTableEntry) TableEntry [k]; TableEntry[k] = recdelete(p, key); = entferne das Element mit Schluessel key rekursiv (falls vorhanden) = public ChainedTableEntry recdelete (ChainedTableEntry p, Object key) f = recdelete ibt einen Zeier auf den Beinn der Liste, auf die p zeit, zurueck, in der key entfernt wurde = if (p == null) return null; if (p.key.equals(key)) return p.etnext(); = ansonsten: = p.next = recdelete(p.next, key); return p; public void printtable () f... // class ChainedHashTable AD Hashverfahren Sven Schuierer, 12. Februar
20 Test-Proramm public class ChainedHashinTest f public static void main(strin ars[])f int vec[] = f 12, 53, 5, 15, 2, 19, 43 ; if (ars.lenth!= 0) f vec = new int [ars.lenth]; for (int j = 0 ; j < ars.lenth ; j++)f vec [j] = Inteer.valueOf(ars[j]).intValue(); Inteer[] t = new Inteer[vec.lenth]; for (int i = 0; i <= vec.lenth - 1; i++) f t[i] = new Inteer(vec[i]); ChainedHashTable h = new ChainedHashTable(7); for (int i = 0; i <= t.lenth - 1; i++) f h.insert(t[i], null); h.printtable (); h.delete(t[0]); h.delete(t[1]); h.delete(t[6]); h.printtable(); Ausabe: 0: - 0: - 1: 15 -> 43-1: 15-2: 2-2: 2-3: - 3: - 4: 53-4: - 5: 12 -> 5 -> 19-5: 5 -> 19-6: - 6: - AD Hashverfahren Sven Schuierer, 12. Februar
21
22 Analyse der direkten Verkettun Uniform-Hashin Annahme: alle Hashadressen werden mit leicher Wahrscheinlichkeit ewählt, d.h.: Pr(h(k i ) = j) = 1=m unabhäni von Operation zu Operation Mittlere Kettenläne bei n Einträen: n=m = Definition C 0 n = Erwartunswert für die Anzahl betrachteter Einträe bei erfolloser Suche C n = Erwartunswert für die Anzahl betrachteter Einträe bei erfolreicher Suche AD Hashverfahren Sven Schuierer, 12. Februar
23 Verkettun der Überläufer Vorteile: + C n und C 0 n niedri + > 1 mölich + echte Entfernunen + für Sekundärspeicher eeinet Effizienz der Suche Anzahl betrachteter separate Verkettun direkte Verkettun Einträe erfolr. erfollos erfolr. erfollos = Nachteile: Zusätzlicher Speicherplatz für Zeier Überläufer außerhalb der Tabelle AD Hashverfahren Sven Schuierer, 12. Februar
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
MehrVorlesung 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
MehrAlgorithmen und Datenstrukturen (Th. Ottmann und P. Widmayer) Folien: Skip-Listen Autor: Sven Schuierer
Alorithmen und Datenstrukturen (Th. Ottmann und P. Widmayer) Folien: Skip-Listen Autor: Sven Schuierer Institut für Informatik Geores-Köhler-Allee Albert-Ludwis-Universität Freibur 1 Überblick Überblick
MehrVorlesung Informatik 2 Algorithmen und Datenstrukturen
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (13 Offenes Hashing) Prof. Dr. Susanne Albers Hashing: Allgemeiner Rahmen Schlüsselmenge S Universum U aller möglichen Schlüssel Hashfunktion h 0,,m-1
Mehr6/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
MehrInformatik 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
MehrInformatik 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
MehrEine 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..
MehrInformatik 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:
MehrHashverfahren 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
MehrTeil 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:
MehrAlgorithmen und Datenstrukturen (Th. Ottmann und P. Widmayer) Folien: Spezielle Sortierverfahren Autor: Sven Schuierer
Algorithmen und Datenstrukturen (Th. Ottmann und P. Widmayer) Folien: Spezielle Sortierverfahren Autor: Sven Schuierer Institut für Informatik Georges-Köhler-Allee Albert-Ludwigs-Universität Freiburg 1
Mehr2. Suchen mit Hashverfahren
2. Suchen mit Hashverfahren Idee Hashfunktion Hashverfahren mit linear verketteten Listen Offene Hashverfahren Dynamische Hashverfahren Hashverfahren in Java Prof. Dr. O. Bittel, HTWG Konstanz Algorithmen
MehrThemen. 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
Mehr17. 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:
MehrKorollar 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
Mehr12. 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
MehrVorlesung Informatik 2 Algorithmen und Datenstrukturen. (07 - Skiplisten) Prof. Dr. Susanne Albers
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (07 - Skiplisten) Prof. Dr. Susanne Albers Skiplisten. Perfekte Skiplisten 2. Randomisierte Skiplisten 3. Verhalten von randomisierten Skiplisten
Mehr4. 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
MehrKollision 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
MehrInformatik II. Giuseppe Accaputo, Felix Friedrich, Patrick Gruntz, Tobias Klenze, Max Rossmannek, David Sidler, Thilo Weghorn FS 2017
1 Informatik II Übung 8 Giuseppe Accaputo, Felix Friedrich, Patrick Gruntz, Tobias Klenze, Max Rossmannek, David Sidler, Thilo Weghorn FS 2017 Heutiges Programm 2 1 Hashtabellen 2 Wiederholung Verkettete
MehrTU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D.
TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D. Übung zur Vorlesung Einführung in die Informatik für Ingenieure (MSE) Alexander van Renen (renen@in.tum.de)
MehrGrundlagen: 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
MehrAlgorithmen 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....................................
MehrAlgorithmen 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
MehrAlgorithmen 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
MehrHashverfahren. (Algorithmen und Datenstrukturen II) Prof. Dr. Oliver Braun. Letzte Änderung: :33. Hashverfahren 1/29
Hashverfahren (Algorithmen und Datenstrukturen II) Prof. Dr. Oliver Braun Letzte Änderung: 19.03.2018 07:33 Hashverfahren 1/29 Hashverfahren bisher jeder Datensatz durch eindeutigen Schlüssel k K gekennzeichnet
MehrAlgorithms & Data Structures 2
Algorithms & Data Structures 2 Hashing WS2017 B. Anzengruber-Tanase (Institute for Pervasive Computing, JKU Linz) (Institute for Pervasive Computing, JKU Linz) MOTIVATION Dictionary Datenstrukturen bisher:
MehrSatz 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
MehrGrundlagen 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
MehrInformatik 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Ü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
MehrTeil 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
MehrAlgorithmen und Datenstrukturen (Th. Ottmann und P. Widmayer) Folien: Suchverfahren Autor: Stefan Edelkamp / Sven Schuierer
Algorithmen und Datenstrukturen (Th. Ottmann und P. Widmayer) Folien: Suchverfahren Autor: Stefan Edelkamp / Sven Schuierer Institut für Informatik Georges-Köhler-Allee Albert-Ludwigs-Universität Freiburg
Mehr17. 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:
Mehr13. 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
MehrHashing 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
MehrHashing 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
MehrEADS 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:
MehrHashing. Ü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
MehrInformatik 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
MehrInformatik 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:
Mehr3. Ü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Ü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:
MehrImplementierung 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
MehrHashing. 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
MehrAlgorithmen 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
MehrInformatik 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
MehrEs 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
MehrIn 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.
MehrAlgorithmen 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
Mehr13. Dynamische Datenstrukturen
Motivation: Stapel. Dynamische Datenstrukturen Verkettete Listen, Abstrakte Datentypen Stapel, Warteschlange, Sortierte Liste 40 40 Motivation: Stapel ( push, pop, top, empty ) Wir brauchen einen neuen
MehrSoftware Entwicklung 1
Software Entwicklung 1 Annette Bieniusa / Arnd Poetzsch-Heffter AG Softech FB Informatik TU Kaiserslautern Abstrakte Datentypen: Maps Bieniusa/Poetzsch-Heffter Software Entwicklung 1 2/ 48 Abstrakte Datentypen:
MehrVorlesung 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
MehrP ( 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
MehrSoftware Entwicklung 1
Software Entwicklung 1 Annette Bieniusa AG Softech FB Informatik TU Kaiserslautern Was gefällt Ihnen? Sehr ausführliches Skript Fragen / Aufgaben in der Vorlesung Praktische Beispiele Tolle Aufgabenblätter
MehrIn C und Java müssen Variablen und Methodenergebnisse durch Typangaben erläutert werden. Welche der folgenden Aussagen sind korrekt und welche nicht:
Typprüfung (Compiler / Laufzeit) In C und Java müssen Variablen und Methodenergebnisse durch Typangaben erläutert werden. Welche der folgenden Aussagen sind korrekt und welche nicht: 1) Der Compiler prüft
MehrInformatik 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:
MehrJava. 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
MehrDatenstrukturen 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
MehrFibonacci-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
MehrLö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
Mehr8. Hashing Lernziele. 8. Hashing
8. Hashing Lernziele 8. Hashing Lernziele: Hashverfahren verstehen und einsetzen können, Vor- und Nachteile von Hashing gegenüber Suchbäumen benennen können, verschiedene Verfahren zur Auflösung von Kollisionen
MehrAlgorithmen und Datenstrukturen II
Syntax und Semantik Java: Der Einstieg Imperative Programmierung in Java Algorithmen zur exakten Suche in Texten Objektori Algorithmen und Datenstrukturen II AG Praktische Informatik Technische Fakultät
MehrGrundlagen: 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
MehrAlgorithmen & 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
Mehr14. 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,
MehrVorlesung Informatik 2 Algorithmen und Datenstrukturen
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (18 Bäume: Grundlagen und natürliche Suchbäume) Prof. Dr. Susanne Albers Bäume (1) Bäume sind verallgemeinerte Listen (jedes Knoten-Element kann mehr
Mehr7. Verkettete Strukturen: Listen
7. Verkettete Strukturen: Listen Java-Beispiele: IntList.java List.java Stack1.java Version: 4. Jan. 2016 Vergleich: Schwerpunkte Arrays verkettete Listen Listenarten Implementation: - Pascal (C, C++):
MehrSchwerpunkte. Verkettete Listen. Verkettete Listen: 7. Verkettete Strukturen: Listen. Überblick und Grundprinzip. Vergleich: Arrays verkettete Listen
Schwerpunkte 7. Verkettete Strukturen: Listen Java-Beispiele: IntList.java List.java Stack1.java Vergleich: Arrays verkettete Listen Listenarten Implementation: - Pascal (C, C++): über Datenstrukturen
Mehr! 1. Unterklassen und Vererbung! 2. Abstrakte Klassen und Interfaces! 3. Modularität und Pakete. II.4.2 Abstrakte Klassen und Interfaces - 1 -
! 1. Unterklassen und Vererbung! 2. Abstrakte Klassen und Interfaces! 3. Modularität und Pakete II.4.2 Abstrakte Klassen und Interfaces - 1 - Ähnliche Programmteile public class Bruchelement { Bruch wert;
MehrAlgorithmen 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
MehrHashing. Ü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
MehrGliederung. 5. Compiler. 6. Sortieren und Suchen. 7. Graphen
5. Compiler Gliederung 1. Struktur eines Compilers 2. Syntaxanalyse durch rekursiven Abstieg 3. Ausnahmebehandlung 4. Arrays und Strings 6. Sortieren und Suchen 1. Grundlegende Datenstrukturen 2. Bäume
MehrEinführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12 1. Kapitel 11. Listen. Listen
Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12 1 Kapitel 11 Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12 2 Ziele Implementierungen für
MehrHashing 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
MehrAlgorithmen 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)
MehrAlgorithmen und Datenstrukturen (Th. Ottmann und P. Widmayer)
Algorithmen und Datenstrukturen (Th. Ottmann und P. Widmayer) Folien: Suchbäume Autor: Stefan Edelkam Institut für Informatik Georges-Köhler-Allee Albert-Ludwigs-Universität Freiburg 1 Bäume Idee: Bäume
Mehr4.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
MehrHashing 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
MehrSchnelles Suchen und Hashing
Schnelles Suchen und Hashing Sie wissen, wie schnell gesucht werden kann Sie kennen die Begriffe: Vor-/Nachbedingung und Invariante Sie wissen, wie binäres Suchen funktioniert Sie wissen, wie Hashing funktioniert
MehrHashmap: Video Erklärung
Hashmap Hashmap: Video Erklärung Definition und Motivation Array: Zugriff über Index=Zahl Wert(Value) Schlüssel(Key) Maier, Klaus 21 Array Hashtag: Zugriff über einen nichtnumerischen Wert 06431 92310
MehrII.4.2 Abstrakte Klassen und Interfaces - 1 -
1. Unterklassen und Vererbung 2. Abstrakte Klassen und Interfaces 3. Modularität und Pakete 4. Ausnahmen (Exceptions) 5. Generische Datentypen 6. Collections II.4.2 Abstrakte Klassen und Interfaces - 1
MehrAlgorithmen und Datenstrukturen. Übersicht. Interfaces und Generics. InsertionSort für Punkte. InsertionSort für Punkte
Algorithmen und Datenstrukturen Wintersemester 2012/13 21. Vorlesung Übersicht Liste und InsertionSort für e für Objekte beliebiger Klassen für Objekte von Klassen, die ein(e) Nutzer(in) festlegen kann
MehrAufgabe11. Methode test1. import java.util.hashmap; import java.util.arraylist; public class Aufgabe11 {
Hochschule Harz Programmierung1 Aufgabe 10: FB Automatisierung und Informatik Dipl.-Inf. Dipl.-Ing. (FH) M. Wilhelm Programmierung 1 für MI / WI Thema: Hashing und Generische Klassen Versuchsziele Kenntnisse
MehrVerkettete Datenstrukturen: Listen
Verkettete Datenstrukturen: Listen 2 Listen Formal: Liste = endliche Folge von Elementen [a 1, a 2,..., a n ]. Spezialfall: leere Liste [ ]. Länge einer Liste = Anzahl der Elemente (bei leerer Liste: 0).
MehrDictionary 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
Mehr16. Dynamische Datenstrukturen
Datenstrukturen 6. Dynamische Datenstrukturen Eine Datenstruktur organisiert Daten so in einem Computer, dass man sie effizient nutzen kann. Verkettete Listen, Abstrakte Datentypen Stapel, Warteschlange
MehrINSTITUT 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
MehrEinführung in die Informatik Hashtables
Einührung in die Inormatik Hashtables Hashtabellen Wolram Burgard Cyrill Stachniss 12.1 Einleitung Wir haben bisher einige der typischen Datenstrukturen zum Speichern von Inormationen kennen gelernt Arrays
MehrHashing. Hash-Tabelle (hash table) Speichert Objekte unter ihrem hash code ab Implementierung: setze array index = hash code
Hashing Hash-Tabellen und -Funktionen Hash-Tabellen in Java Einleitung Anwendung von Hashing: Verfahren für dynamisch veränderliche Menge von Objekten mit effizienten Grundoperationen (aka. Wörterbuchoperationen)
MehrRechtsbelehrung. Java und OOP Das Buch Christian Silberbauer 144
Rechtsbelehrung Dieser Foliensatz ist urheberrechtlich geschützt. Änderungen an den Folien sind untersagt. Ausschließlich eine nicht-kommerzielle Nutzung ist kostenfrei. Andernfalls wird eine Gebühr fällig.
MehrAlgorithmen und Datenstrukturen 11
5. Juli 2012 1 Besprechung Blatt 10 Fragen 2 Hashing Allgemein, Hashtablestruktur Sondierungsverfahren 3 Anonyme und innere Klassen Anonyme Klassen Innere Klassen 4 Zirkuläre Arrays 5 Vorbereitung Blatt
Mehr18. Natürliche Suchbäume
Wörterbuchimplementationen 1. Natürliche Suchbäume [Ottman/Widmayer, Kap..1, Cormen et al, Kap. 12.1-12.] Hashing: Implementierung von Wörterbüchern mit erwartet sehr schnellen Zugriffszeiten. Nachteile
Mehr16. Dezember 2004 Dr. M. Schneider, P. Ziewer
Technische Universität München WS 2004/2005 Fakultät für Informatik Lösungsvorschläge zu Blatt 8 A. Berlea, M. Petter, 16. Dezember 2004 Dr. M. Schneider, P. Ziewer Übungen zu Einführung in die Informatik
Mehr