Kapitel 6 HASHING. Algorithmen & Datenstrukturen Prof. Dr. Wolfgang Schramm
|
|
- Erika Sauer
- vor 6 Jahren
- Abrufe
Transkript
1 Kapitel 6 HASHING Algorithmen & Datenstrukturen Prof. Dr. Wolfgang Schramm
2 Übersicht 1 1. Einführung 2. Algorithmen 3. Eigenscha?en von Programmiersprachen 4. Algorithmenparadigmen 5. Suchen & SorGeren 6. Hashing 7. Komplexität von Algorithmen 8. Abstrakte Datentypen (ADT) 9. Listen 10. Bäume 11. Graphen
3 Lernziele des Kapitels 2 2 Kennenlernen von Hashing bzw. was die MoGvaGon für Hashing ist? Verstehen wie Hashing funkgoniert. Verstehen, was eine HashfunkGon ist. Behandlung von Kollisionen beim Hashing verstehen. Einsatzmöglichkeiten für Hashing kennenlernen.
4 Inhalt 3 Hashing NotaGonen HashfunkGon bzw. Streuwer_unkGon Hashtabelle Beispiele Kollisionen und Kollisionsstrategien Offenes bzw. Geschlossenes Hashing Komplexität Anwendungsgebiete von Hashing Java Hashtable- Klasse Programmierbeispiel
5 Hashing 4 Speichermethode bei großen Datenbanken beschleunigt das Finden von Daten Die Grundidee des Hashing- Verfahrens Hash- FunkGon: Schlüsselwert à Speicheradresse GrundoperaBonen Einfügen Löschen Suchen
6 Anwendungsgebiete 5 Datenbanken Index für Tabellen à unter günsggen Bedingungen ideale Zugriffszeiten Compiler InterpretaGon von Symboltabellen Betriebssysteme ImplemenGerung von Seitentabellen SonsGge ApplikaGonen ImplemenGerung von Caches ImplemenGerung von Mengen
7 Hashing: DefiniGonen 1/6 6 U sei die Menge der möglichen Schlüssel. S U sei die Menge der zu speichernden Schlüssel mit S = n. Ein Behälter (Bucket) kann ein mit einem Schlüssel zu idengfizierendes Element aufnehmen. Eine Hashtabelle H ist eine Menge von nummerierten Behältern B 0,B 1,B 2,.B m- 1 mit H = m. Anmerkung: häufig ist eine Hashtabelle ein Array und der Bucket ein Arrayplatz
8 7 Eine HashfunkBon ist eine ganzzahlige FunkGon Hashing: DefiniGonen 2/6 h : U {0,..., h( u ) = a m 1} die einem Schlüssel u den Hashwert a zuordnet, der den Behälter B a bezeichnet. Anmerkung: bei Hasharray: statt Hashwert auch oft Hashindex
9 Beispiel Namen 8 Schlüssel: mögliche Schlüssel U = [A- Z][a- z]* zu speichernde Schlüssel S = <<Vornamen>> Hashtabelle: Array 0..7 of Integer Array 0..7 of List of Integer HashfunkGon: h(u) = <<Länge von u>> h(u) = <<Länge von u>> mod 8 Zu lösen (1): Länge der Hash-Tabelle müsste unendlich sein. Gelöst (1): mod Zu lösen (2): Eva und Ann haben gleich viele Buchstaben à Kollision Gelöst (2): Liste alternativ zu (2): falls a[i] besetzt, wähle a[i+1], usw.
10 Hashing: DefiniGonen 3/6 11 Anmerkung: Eine HashfunkBon wird o? nogert als mit h : f ( u) mod m f (u) Ν m = H H Hashtabelle H Länge der Hashtabelle u ganzzahliger Schlüssel d.h. f liefert eine gut verteilte Abbildung auf N. Die modulo- OperaGon reduziert die Zahlen auf die Länge der Hash- Tabelle
11 Hashing: DefiniGonen 4/6 12 Die Schlüsseldichte ist das Verhältnis zu speichernde zu mögliche Schlüssel, d.h. S / U Der Belegungsfaktor ist das Verhältnis zu speichernde Schlüssel zu Anzahl der Behälter S / B U: mögliche Schlüssel S: zu speichernde Schlüssel B: Behälter
12 Hashing: DefiniGonen 5/6 14 Der Füllgrad α ist das Verhältnis aktuell gespeicherte Schlüssel zu Länge der Hashtabelle, d.h. α = a / m mit m = H bzw. m = B a = Anzahl gespeicherter Schlüssel Anmerkung Offensichtlich gilt: je höher der Füllgrad, um so größer die Wahrscheinlichkeit, dass zwei Schlüssel auf den gleichen Hash- Wert abgebildet werden ( Kollision ).
13 Beispiel 1/4 15 Aufgabe Verteilung von Monatsnamen auf 17 Behälter Lösung Namen werden als Strings dargestellt Umwandlung in Zahlen notwendig nur Großbuchstaben f("a") = 1, f("b") = 2, usw. A 1 B 2 C 3 D 4 E 5 F 6 G 7 H 8 I 9 J 10 K 11 L 12 M 13 N 14 O 15 P 16 Q 17 R 18 S 19 T 20 U 21 V 22 W 23 X 24 Y 25 Z 26
14 Beispiel 2/4 16 Als HashfunkGon nehmen wir f = ( x) ( x) 3 = Summe der Ordinalzahl der ersten 3 Buchstaben von h(x) = f x ( ) mod 17 = ( x ) 3 mod 17 Beispiel: h(februar) = (6+5+2) mod 17 = 13 mod 17 = 13 h(august) = (1+21+7) mod 17 = 29 mod 17 = 12 x
15 Beispiel 3/ NOV 9 JUL 1 APR, DEZ 10 2 MAE 11 JUN 3 12 AUG 4 13 FEB, OKT MAI, SEP JAN Etliche Buckets bleiben leer Füllgrad α = Anteil der belegten Plätze in %, d.h. α = m / n mit m := Anzahl der Elemente Es kann zu Kollisionen kommen! Es fehlen noch: SEP, OKT, DEZ A 1 B 2 C 3 D 4 E 5 F 6 G 7 H 8 I 9 J 10 K 11 L 12 M 13 N 14 O 15 P 16 Q 17 R 18 S 19 T 20 U 21 V 22 W 23 X 24 Y 25 Z 26
16 Beispiel 4/4 18 APR, DEZ à 1 MAI, SEP à 6 FEB, OKT à 13 mehrere Schlüssel werden auf denselben Behälter abgebildet.! Kollision " Auflösung l dem Behälter hinzufügen! Verketten (lineare Liste) l neuen Behälter suchen! Sondieren l vermeiden! perfektes Hashing
17 Wahrscheinlichkeit für Kollision 19 P k = 1 mit 1 m n n ( n 1) ( n 2)... ( n m + 1) m n n (n- 1) (n- m+1): Anzahl der Möglichkeiten, kollisionsfrei m Elemente zu verteilen n m : Anzahl m Elemente zu verteilen = n! ( n m)! n m Beispiele Monatsnamen Geburtstage in Schulklassen n m P k , , , ,97
18 Hashing: DefiniGonen 6/6 20 Eine Kollision tri auf, wenn zwei Schlüssel auf den gleichen Hashwert abgebildet werden: h( a ) = h( b) mit a b.
19 Eigenscha?en einer HashfunkGon 21 surjekbv d.h. alle Behälter sollten erfasst werden. gleichverteilend d.h. jeder Behälter sollte mit gleicher Wahrscheinlichkeit getroffen werden. einfach d.h. sie sollte mit minimalen Aufwand berechenbar sein.
20 Kollisionsstrategien 22 VerkeSen Sondieren Lineares Sondieren QuadraGsches Sondieren
21 Offenes bzw. geschlossenes Hashing 23 Problem : Was passiert wenn Anzahl Schlüssel > Anzahl Speicherplätze Lösung : 1. Offenes Hashing: manchmal auch als geschlossen bzgl. der Indexpositionen bezeichnet! Jeder Behälter kann beliebig viele Elemente aufnehmen. Für jeden Behälter wird eine verkeete Liste angelegt, in die alle Schlüssel eingefügt werden, die auf diesen Behälter abgebildet werden. 2. Geschlossenes Hashing: manchmal auch als offen bzgl. der Indexpositionen bezeichnet Hier darf jeder Behälter nur eine Konstante Anzahl b 1 von Schlüsseln aufnehmen.!
22 Offenes Hashing: Verkeen Maerz Januar April Dezember Ein Behälter kann mehr als ein Element fassen Alle Schlüssel s mit h(s) = a werden in B a abgelegt als lineare Liste Gefahr: Entartung zur linearen Liste à Zugriffszeit wächst rapide
23 Geschlossenes Hashing: Lineares Sondieren 1/3 25 Pro Behälter ein Schlüssel Bei Kollision Linear in einer Richtung nächsten freien Behälter suchen Formal h i ( h( x) i) mod m ( x) = + i=0; while (occupied(h i (x)) do i++; od; // hash-key is h i (x) Gefahr: Folge von besetzten Feldern vergrößert sich (Verklumpung) à Kollisionswahrscheinlichkeit steigt.
24 26 Geschlossenes Hashing: Lineares Sondieren 2/3
25 Geschlossenes Hashing: Lineares Sondieren 3/3 27 Varianten 1. Linear in einer Richtung den nächsten freien Behälter suchen, mit Sprüngen der Länge c Beispiel c = 7; h(a) = 27 falls 27 besetzt, = 34 mod m falls 34 besetzt, = 41 mod m etc. 2. Linear in beiden Richtungen (alternierend) Beispiel h(a) = 27 falls 27 besetzt, 27 1*7 = 20 mod m falls 20 besetzt, *7 = 34 mod m falls 34 besetzt, 34 3*7 = 13 mod m etc.
26 28 Geschlossenes Hashing: QuadraGsches Sondieren Wie lineares Sondieren, jedoch Schriweite quadragsch (nicht linear) / alternierend Beispiel h(a) = 27 falls besetzt, = 28 mod m = 26 mod m = 31 mod m = 23 mod m = 36 mod m etc. Formal: h ( x) i = h( x) + ( 1) i+ 1 i. 2 2 mod m
27 29 Liste: kein Problem Sondieren Element kann nicht einfach gelöscht werden, da sonst die Kee unterbrochen wäre. Bsp.: FEB verursacht Lücke, OKT wird nicht gefunden. Mögliche Lösungen Element wird nicht gelöscht, sondern nur zum Überschreiben markiert. Löschen von Elementen 0 NOV 9 JUL 1 APR 10 2 MAE Lineares 11 Sondieren JUN 3 DEZ 12 AUG 4 13 FEB 5 14 OKT 6 MAI 15 7 SEP 16 8 JAN! Prof. Dr. M. Gumbel WS09 ADS: Hashing Folie 29
28 Komplexität 1/2 30 Größe der Hashtabelle: N Aufwand im besten Fall Berechnung des Hashwertes unabhängig von n: O(1) Aufwand im schlechtesten Fall Ganze Hashtabelle muss durchsucht werden O(N) (Hashtabelle wg. Kollision zu lin. Liste entartet)
29 Komplexität 2/2 31 Größe der Hashtabelle: N Aufwand im mileren Fall (bei sondieren) Wahrscheinlichkeit für Behälter j: 1/N Wahrscheinlichkeit einer Kollision: n abhängig vom Füllgrad α n Wahrscheinlichkeit für Behälter belegt : α n nächster Behälter belegt: α 2 n übernächstes Bucket belegt: α 3 etc erfolgloses Suchen: 1 + α + α 2 + α = 1 1 erfolgreiches Einfügen: ln α 1 α 1 1 α
30 32 Prof. Dr. M. Gumbel WS09 ADS: Hashing Komplexität: Übersicht Operation Fall Liste oder Sondieren add bester O(1) durchschnittlich 1 O 1 α schlechtester O(m) contains bester O(1) durchschnittlich 1 1 O ln / erfolgreich/-los α 1 α schlechtester O(m) remove bester O(1) durchschnittlich 1 1 O ln α 1 α schlechtester O(m) 1 O 1 α Folie 32
31 Optimaler Füllgrad α 33 Ab Füllgrad von ca. 80 % ist das Verhalten schlecht. Erfolgreiche Suche Erfolglose Suche, Einfügen, Löschen 1 1 ln α 1 α 1 1 α Prof. Dr. M. Gumbel WS09 ADS: Hashing Folie 33
32 Rehashing 34 Füllgrad zu groß oder das Array voll: à Rehashing Array wird vergrößert und alle Elemente werden neu eingefügt. Vorteil: Zum Löschen markierte Elemente können ebenfalls freigegeben werden. Sog. dynamisches Hashen passt Arraygröße automagsch an. Prof. Dr. M. Gumbel WS09 ADS: Hashing Folie 34
33 Java Hashtable- Klasse 35 Für die ImplementaGon von Hashtabellen steht uns in Java unmielbar die Klasse Hashtable zur Verfügung. Sie hat die folgenden Methoden: Hashtable(): der Konstruktor für die DefiniGon einer leeren Hashtabelle elements(): Rückgabe aller Daten aus der Hashtabelle isempty(): Abfrage, ob die Hashtabelle leer ist get(): liefert Element gemäß Schlüsselwertangabe
34 Java Hashtable- Klasse 36 keys(): gibt alle (belegten) Schlüsselwerte der Hashtabelle zurück put(): speichert Element gemäß Schlüsselwert in Hashtabelle remove(): en_ernt referenziertes Hashtabellenelement size(): gibt Anzahl gespeicherter Elemente in der Hashtabelle zurück clear(): en_ernt alle Schlüssel und die Elemente aus der Hashtabelle
35 Java Hashtable- Klasse 37 contains(): prü?, ob sich ein Element in der Hashtabelle befindet containskey(): prü?, ob sich ein Schlüsselwert in der Hashtabelle befindet clone(): erzeugt einen Klone einer Hashtabelle tostring(): generiert eine String- RepräsentaGon einer Hashtabelle rehash(): führt das Rehashing für eine Hashtabelle durch.
36 38 Programmierbeispiel
37 39 Programmierbeispiel
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:
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
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
MehrKapitel 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
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
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,
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
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (12 Hashverfahren: Verkettung der Überläufer) Prof. Dr. Susanne Albers Möglichkeiten der Kollisionsbehandlung Kollisionsbehandlung: Die Behandlung
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
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
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
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
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:
MehrProgrammiertechnik 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
MehrInformatik 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
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
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
MehrUntersuchen 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
MehrAlgorithmen und Datenstrukturen SoSe 2008 in Trier. Henning Fernau Universität Trier
Algorithmen und Datenstrukturen SoSe 2008 in Trier Henning Fernau Universität Trier fernau@uni-trier.de 1 Algorithmen und Datenstrukturen Gesamtübersicht Organisatorisches / Einführung Grundlagen: RAM,
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....................................
MehrÜbersicht. Volltextindex Boolesches Retrieval Termoperationen Indexieren mit Apache Lucene
Übersicht Volltextindex Boolesches Retrieval Termoperationen Indexieren mit Apache Lucene 5.0.07 1 IR-System Peter Kolb 5.0.07 Volltextindex Dokumentenmenge durchsuchbar machen Suche nach Wörtern Volltextindex:
MehrPraktische Informatik I Algorithmen und Datenstrukturen Wintersemester 2006/07
6 Hashverfahren zum Namen Hash : engl für zerhacken gestreute Speicherung 61 Grundbegriffe Wir unterstellen ein direkt adressierbares Speichermedium mit einer Menge von Adressen, dem Adressraum Die Datensätze
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
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
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
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:
MehrAlgorithmen 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
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
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
MehrAlgorithmen und Datenstrukturen in Java. 2007 Jiri Spale, Algorithmen und Datenstrukturen in Java 1
Algorithmen und Datenstrukturen in Java 2007 Jiri Spale, Algorithmen und Datenstrukturen in Java 1 Enumeratoren und Iteratoren Daten üblich gespeichert in: - Arrays, verketteten Listen, Bäumen, Geläufige
MehrSuchen in Listen und Hashtabellen
Kapitel 12: Suchen in Listen und Hashtabellen Einführung in die Informatik Wintersemester 2007/08 Prof. Bernhard Jung Übersicht Einleitung Lineare Suche Binäre Suche (in sortierten Listen) Hashverfahren
MehrDatenstrukturen & 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
MehrCounting - Sort [ [ ] [ [ ] 1. SS 2008 Datenstrukturen und Algorithmen Sortieren in linearer Zeit
Counting-Sort Counting - Sort ( A,B,k ). for i to k. do C[ i]. for j to length[ A]. do C[ A[ j ] C[ A[ j ] +. > C[ i] enthält Anzahl der Elemente in 6. for i to k. do C[ i] C[ i] + C[ i ]. > C[ i] enthält
Mehr5 BINÄRE ENTSCHEIDUNGS- DIAGRAMME (BDDS)
5 BINÄRE ENTSCHEIDUNGS- DIAGRAMME (BDDS) Sommersemester 2009 Dr. Carsten Sinz, Universität Karlsruhe Datenstruktur BDD 2 1986 von R. Bryant vorgeschlagen zur Darstellung von aussagenlogischen Formeln (genauer:
MehrAlgorithmen & Datenstrukturen. 3. Suchen
Algorithmen & Datenstrukturen 3. Suchen 1 Exponentielle Suche Gesucht wird ein Element mit Schlüssel k. Die exponentielle Suche eignet sich zum Suchen in nach den Schlüsselwerten sortierten Feldern, deren
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
Mehr5.8.2 Erweiterungen Dynamische Hash-Funktionen (mit variabler Tabellengröße)?
5.8.2 Erweiterungen Dynamische Hash-Funktionen (mit variabler Tabellengröße)? Ladefaktor: α, n aktuelle Anzahl gespeicherter Werte m Tabellengröße. Einfacher Ansatz: rehash() a z c h s r b s h a z Wenn
MehrDIGITALE BÄUME TRIES. Algorithmen & Datenstrukturen Prof. Dr. Wolfgang Schramm
DIGITALE BÄUME TRIES Algorithmen & Datenstrukturen Prof. Dr. Wolfgang Schramm Übersicht 1 0. Einführung 1. Algorithmen 2. Eigenschaften von Programmiersprachen 3. Algorithmenparadigmen 4. Suchen & Sortieren
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
MehrKapitel 3. Symboltabelle. Symboltabelle Wintersemester 2008/09 1 / 10
Kapitel 3 Symboltabelle Symboltabelle Wintersemester 2008/09 1 / 10 Symboltabelle: Ziele und Kriterien Ziele: Die Merkmale bzw. Schlüssel aller Symbole festlegen, die nicht durch Endzustände des Automaten
MehrHash-Verfahren. Prof. Dr. T. Kudraß 1
Hash-Verfahren Prof. Dr. T. Kudraß 1 Einführung Drei Alternativen, wie Dateneinträge k* im Index aussehen können: 1. Datensatz mit Schlüsselwert k.
MehrLiteratur: Jeffrey D. Ullman: Principles of Database Systems, 2 nd Edition 1982, Kapitel 2.2
Hashorganisation HASHORGANISATION Literatur: Jeffrey D. Ullman: Principles of Database Systems, 2 nd Edition 982, Kapitel 2.2 Die Sätze der Datei werden auf eine Menge von Buckets aufgeteilt. Jedes Bucket
MehrAlgorithmen & Datenstrukturen Midterm Test 2
Algorithmen & Datenstrukturen Midterm Test 2 Martin Avanzini Thomas Bauereiß Herbert Jordan René Thiemann
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
MehrInhaltsverzeichnis. Teil 1 Grundlagen 21. Teil 2 Datenstrukturen 85
Inhaltsverzeichnis Vorwort 13 Umfang 14 Einsatz als Unterrichtsmittel 14 Algorithmen mit Praxisbezug 15 Programmiersprache 16 Danksagung 17 Vorwort des Java-Beraters 18 Hinweise zu den Übungen 19 Teil
MehrU 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
MehrSeite 1 von 13 Name: Aufgabe 1: Suchalgorithmen (a) (4 Punkte ) Gegeben ist folgendes Streckennetz:
Seite 1 von 13 Aufgabe 1: Suchalgorithmen (a) (4 ) Gegeben ist folgendes Streckennetz: (12 ) B D A F Z C E Zeigen Sie durch Handsimulation wie mit dem Breitensuch-Algorithmus ein Weg von nach gefunden
MehrAssoziative Container in C++ Christian Poulter
Assoziative Container in C++ Christian Poulter Seminar: Die Sprache C++ Mat-Nr.: 53 03 129 EMail: inf@poulter.de Christian Poulter Assoziative Container in C++ Seite 1/10 Inhalt 1. Einleitung: Container...
MehrMuster. Informatik 3 (Februar 2004) Name: Matrikelnummer: Betrachten Sie den folgenden Suchbaum. A G H J K M N
2 von 15 Aufgabe 1: Suchbäume (14 ) Betrachten Sie den folgenden Suchbaum. A B C D E F G H I J K L M N O P R (a) (1 Punkt ) Geben Sie die Höhe des Knotens F an. (b) (1 Punkt ) Geben Sie die Tiefe des Knotens
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
MehrStud.-Nummer: Datenstrukturen & Algorithmen Seite 1
Stud.-Nummer: Datenstrukturen & Algorithmen Seite 1 Aufgabe 1. / 16 P Instruktionen: 1) In dieser Aufgabe sollen Sie nur die Ergebnisse angeben. Diese können Sie direkt bei den Aufgaben notieren. 2) Sofern
MehrInformatik 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
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
MehrInhaltsverzeichnis. Teil 1 Grundlagen 23
Inhaltsverzeichnis Vorwort 11 Umfang 12 Einsatz als Unterrichtsmittel 12 Algorithmen mit Praxisbezug 13 Programmiersprache 14 Danksagung 15 Vorwort des C++-Beraters 16 Hinweise zu den Übungen 21 Teil 1
MehrAlgorithmen 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
MehrAlgorithmen 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
MehrWiederholung ADT Menge Ziel: Verwaltung (Finden, Einfügen, Entfernen) einer Menge von Elementen
Was bisher geschah abstrakter Datentyp : Signatur Σ und Axiome Φ z.b. ADT Menge zur Verwaltung (Finden, Einfügen, Entfernen) mehrerer Elemente desselben Typs Spezifikation einer Schnittstelle Konkreter
MehrC# - Einführung in die Programmiersprache Arrays, Enumeration und Collections. Leibniz Universität IT Services Anja Aue
C# - Einführung in die Programmiersprache Arrays, Enumeration und Collections Leibniz Universität IT Services Anja Aue Arrays... speichern mehrere Werte vom gleichen Datentyp. fassen zusammenhängende Werte
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
MehrSeminar Datenbanken Martin Gerstmann
Seminar Datenbanken Martin Gerstmann Gliederung 1. Ziele 2. Arten 2.1. erweiterbares Hashing 2.2. lineares Hashing 2.3. virtuelles Hashing 3. Bewertung 1. Ziele wachsende/schrumpfende Datenmengen verwalten
MehrÜberlaufbehandlung ohne Verkettung
3.2 Statische Hash-Verfahren direkte Berechnung der Speicheradresse (Seitenadresse) eines Satzes über Schlüssel (Schlüsseltransformation) Hash-Funktion h: S {, 2,..., n} S = Schlüsselraum, n = Größe des
MehrCopyright, Page 1 of 7 Hashing
www.atheatik-netz.de Copyright, Page 1 of 7 Hashing 1. Grundlagen des Hashings Wir betrachten Datenstrukturen zur Verwaltung von Dictionaries das sind Datenansalungen, die sich durch Einfügen und Löschen
MehrBeweis: 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
MehrMultiplikationsmethode. 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... ˆΦ =
MehrDatenstrukturen & Algorithmen Lösungen zu Blatt 6 FS 12
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 8. März
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
MehrRobert Sedgewick. Algorithmen in Java. Teil 1-4 Grundlagen Datenstrukturen Sortieren Suchen. Java-Beratung durch Michael Schidlowsky
Robert Sedgewick Algorithmen in Java Teil 1-4 Grundlagen Datenstrukturen Sortieren Suchen Java-Beratung durch Michael Schidlowsky 3., überarbeitete Auflage \ PEARSON ein Imprint von Pearson Education München
MehrDatenstrukturen in Java
Datenstrukturen in Java SEP 350 Datenstrukturen Datenstrukturen ermöglichen Verwaltung von / Zugriff auf Daten (hier: Objekte) Datenstrukturen unterscheiden sich duch Funktionalität Implementierung modulares
MehrEinführung in die Informatik: Programmierung und Software-Entwicklung, WS 16/17. Kapitel 13. Listen. Listen 1
Kapitel 13 Listen Listen 1 Ziele Implementierungen für Listen kennenlernen Einfach verkettete und doppelt verkettete Listen verstehen Listen-Implementierungen in der Java-Bibliothek kennenlernen Durch
MehrVorlesung 04.12.2006: Binäre Entscheidungsdiagramme (BDDs) Dr. Carsten Sinz
Vorlesung 04.12.2006: Binäre Entscheidungsdiagramme (BDDs) Dr. Carsten Sinz Datenstruktur BDD 1986 von R. Bryant vorgeschlagen zur Darstellung von aussagenlogischen Formeln (genauer: Booleschen Funktionen)
MehrBäume, Suchbäume und Hash-Tabellen
Im folgenden Fokus auf Datenstrukturen, welche den assoziativen Zugriff (über einen bestimmten Wert als Suchkriterium) optimieren Bäume: Abbildung bzw. Vorberechnung von Entscheidungen während der Suche
MehrRobert Sedgewick. Algorithmen in Java. »il 1-4 Grundlagen Datenstrykturen Sortleren Suchen. java-beratung durch Michael Schidlowsky
Robert Sedgewick Algorithmen in Java»il 1-4 Grundlagen Datenstrykturen Sortleren Suchen java-beratung durch Michael Schidlowsky 3., überarbeitete Auflage PEARSON ein Imprint von Pearson Education München
Mehr1 Abstrakte Datentypen
1 Abstrakte Datentypen Spezifiziere nur die Operationen! Verberge Details der Datenstruktur; der Implementierung der Operationen. == Information Hiding 1 Sinn: Verhindern illegaler Zugriffe auf die Datenstruktur;
MehrGrundlagen: 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 011 Übungsblatt 30. Mai 011 Grundlagen: Algorithmen und Datenstrukturen
MehrOCP Java SE 8. Collections
OCP Java SE 8 Collections Collections (Interfaces) Iterable Collection Set List Queue SortedSet Deque Collection List erlaubt Duplikate und null behält die Reihenfolge Set erlaubt keine Duplikate Queue
MehrGrundlagen der Informatik. Prof. Dr. Stefan Enderle NTA Isny
Grundlagen der Informatik Prof. Dr. Stefan Enderle NTA Isny 2 Datenstrukturen 2.1 Einführung Syntax: Definition einer formalen Grammatik, um Regeln einer formalen Sprache (Programmiersprache) festzulegen.
MehrProgrammiertechnik II
Bäume Symboltabellen Suche nach Werten (items), die unter einem Schlüssel (key) gefunden werden können Bankkonten: Schlüssel ist Kontonummer Flugreservierung: Schlüssel ist Flugnummer, Reservierungsnummer,...
MehrAlgorithmen und Datenstrukturen VO 3.0 Vorlesungsprüfung 19. Oktober 2007
Technische Universität Wien Institut für Computergraphik und Algorithmen Arbeitsbereich für Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen 1 186.089 VO 3.0 Vorlesungsprüfung 19. Oktober
MehrKlausur Informatik B April Teil I: Informatik 3
Informatik 3 Seite 1 von 8 Klausur Informatik B April 1998 Teil I: Informatik 3 Informatik 3 Seite 2 von 8 Aufgabe 1: Fragekatalog (gesamt 5 ) Beantworten Sie folgende Fragen kurz in ein oder zwei Sätzen.
MehrEinstieg in die Informatik mit Java
1 / 15 Einstieg in die Informatik mit Java Collections Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 15 1 Überblick Collections 2 Hierarchie von Collections 3 Verwendung
MehrAlgorithmen und Datenstrukturen 2. Dynamische Datenstrukturen
Algorithmen und Datenstrukturen 2 Dynamische Datenstrukturen Algorithmen für dynamische Datenstrukturen Zugriff auf Variable und Felder durch einen Ausdruck: Namen durch feste Adressen referenziert Anzahl
MehrCollections. Arthur Zaczek. Nov 2015
Arthur Zaczek Nov 2015 1 Collections 1.1 Definition Anhäufung von Objekten Werte können hinzugefügt, gesucht und gelöscht werden Implementierung mit verschiedenen Algorithmen, je nach Nutzung 1.2 Grundlegende
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
Mehr8.4 Suffixbäume. Anwendungen: Information Retrieval, Bioinformatik (Suche in Sequenzen) Veranschaulichung: DNA-Sequenzen
8.4 Suffixbäume Ziel: Datenstruktur, die effiziente Operationen auf (langen) Zeichenketten unterstützt: - Suche Teilzeichenkette (Substring) - Präfix - längste sich wiederholende Zeichenkette -... Anwendungen:
MehrKap. 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.
Mehr8.1 Einführendes Beispiel
Kapitel 8 Hashing Dieses Kapitel beschäftigt sich mit einem wichtigen Speicherungs- und Suchverfahren, bei dem die Adressen von Daten aus zugehörigen Schlüsseln errechnet werden, dem Hashing Dabei stehen
MehrAlgorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2014 / 2015 Vorlesung 6, Donnerstag 27.
Algorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2014 / 2015 Vorlesung 6, Donnerstag 27. November 2013 (Hashing Kollisionsbehandlung, Prioritätswarteschlangen)
MehrDatenstrukturen und Algorithmen D-INFK
Eidgenössische Technische Hochschule Zürich Ecole polytechnique fédérale de Zurich Politecnico federale di Zurigo Federal Institute of Technology at Zurich Institut für Theoretische Informatik Peter Widmayer
MehrKap. 5 Hashing. Linux-Kurs 2. Teil. Überblick. Motivation. 4 Idee von Hashing. Idee von Hashing. Warum soll ich heute hier bleiben? Und wenn nicht?
Kap. 5 Hashing Professor Dr. Lehrstuhl für Algorithm Engineering, LS11 Fakultät für Informatik, T Dortmund nach Übungstest 15./16. VO DAP2 SS 2009 16./18. Juni 2009 Linux-Kurs 2. Teil Beginn: Di 16.6.
MehrDatenbanken. Interne Datenorganisation:
Interne Datenorganisation: Bisher: Konzeptionelle Betrachtungen einer Datenbank aus Sicht der Anwendung: Modellierung, Normalisieren, Sprache zum Einfügen, Ändern, Löschen, Lesen Jetzt: Betrachtung der
MehrAlgorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2014 / 2015. Vorlesung 5, Donnerstag, 20.
Algorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2014 / 2015 Vorlesung 5, Donnerstag, 20. November 2014 (Wie baut man eine Hash Map, Universelles Hashing)
MehrJavakurs FSS Lehrstuhl Stuckenschmidt. Tag 4 ArrayList, PriorityQueue, HashSet und HashMap
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt Tag 4 ArrayList, PriorityQueue, HashSet und HashMap Array List Dynamisches Array ArrayList vertritt ein Array mit variabler Länge Kapazität passt sich automatisch
Mehr! DBMS organisiert die Daten so, dass minimal viele Plattenzugriffe nötig sind.
Unterschiede von DBMS und files Speichern von Daten! DBMS unterstützt viele Benutzer, die gleichzeitig auf dieselben Daten zugreifen concurrency control.! DBMS speichert mehr Daten als in den Hauptspeicher
MehrB*-BÄUME. Ein Index ist seinerseits wieder nichts anderes als eine Datei mit unpinned Records.
B*-Bäume 1 B*-BÄUME Beobachtung: Ein Index ist seinerseits wieder nichts anderes als eine Datei mit unpinned Records. Es gibt keinen Grund, warum man nicht einen Index über einem Index haben sollte, und
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.
MehrVorlesung Datenstrukturen
Vorlesung Datenstrukturen Binärbaum Suchbaum Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 356 Datenstruktur Binärbaum Strukturrepräsentation des mathematischen Konzepts Binärbaum
MehrAlgorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Dynamische Datenobjekte Pointer/Zeiger, Verkettete Liste Eigene Typdefinitionen 1 Zeigeroperatoren & und * Ein Zeiger ist die Speicheradresse irgendeines Objektes. Eine
Mehr