Kapitel 6 HASHING. Algorithmen & Datenstrukturen Prof. Dr. Wolfgang Schramm

Größe: px
Ab Seite anzeigen:

Download "Kapitel 6 HASHING. Algorithmen & Datenstrukturen Prof. Dr. Wolfgang Schramm"

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

Mehr

Themen. Hashverfahren. Stefan Szalowski Programmierung II Hashverfahren

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

Mehr

Vorlesung Informatik 2 Algorithmen und Datenstrukturen

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

Mehr

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

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

Mehr

Algorithmen und Datenstrukturen

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

Mehr

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

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

Mehr

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

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

Mehr

Vorlesung Informatik 2 Algorithmen und Datenstrukturen

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

Mehr

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

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

Mehr

Gliederung. 5. Compiler. 6. Sortieren und Suchen. 7. Graphen

Gliederung. 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

Mehr

Hashing. Algorithmen und Datenstrukturen II 1

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

Mehr

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

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

Mehr

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

Kollision Hashfunktion Verkettung Offenes Hashing Perfektes Hashing Universelles Hashing Dynamisches Hashing. 4. Hashverfahren 4. Hashverfahren geg.: Wertebereich D, Schlüsselmenge S = {s 1,..., s n } D Menge A von Speicheradressen; oft: A = {0,..., m 1} jedes Speicherverfahren realisiert h : D A mögliche Implementierungen von

Mehr

Übung Algorithmen und Datenstrukturen

Ü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:

Mehr

Programmiertechnik II

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

Mehr

Informatik II, SS 2014

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

Mehr

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

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

Mehr

Algorithmen und Datenstrukturen II: Hashverfahren

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

Mehr

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

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

Mehr

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

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

Mehr

Grundlagen: Algorithmen und Datenstrukturen

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

Mehr

Algorithmen und Datenstrukturen II: Hashverfahren

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

Mehr

Übersicht. Volltextindex Boolesches Retrieval Termoperationen Indexieren mit Apache Lucene

Ü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:

Mehr

Praktische Informatik I Algorithmen und Datenstrukturen Wintersemester 2006/07

Praktische 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

Mehr

Informatik II, SS 2014

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

Mehr

Algorithmen und Datenstrukturen II

Algorithmen 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

Mehr

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

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

Mehr

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

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

Mehr

Algorithmen und Datenstrukturen Hashverfahren

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

Mehr

8. Hashing Lernziele. 8. Hashing

8. 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

Mehr

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

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

Mehr

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

Mehr

Suchen in Listen und Hashtabellen

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

Mehr

Datenstrukturen & Algorithmen Lösungen zu Blatt 5 FS 14

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

Mehr

Counting - Sort [ [ ] [ [ ] 1. SS 2008 Datenstrukturen und Algorithmen Sortieren in linearer Zeit

Counting - 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

Mehr

5 BINÄRE ENTSCHEIDUNGS- DIAGRAMME (BDDS)

5 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:

Mehr

Algorithmen & Datenstrukturen. 3. Suchen

Algorithmen & 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

Mehr

Algorithmen und Datenstrukturen 11

Algorithmen 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

Mehr

5.8.2 Erweiterungen Dynamische Hash-Funktionen (mit variabler Tabellengröße)?

5.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

Mehr

DIGITALE BÄUME TRIES. Algorithmen & Datenstrukturen Prof. Dr. Wolfgang Schramm

DIGITALE 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

Mehr

Algorithmen und Datenstrukturen

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

Mehr

Kapitel 3. Symboltabelle. Symboltabelle Wintersemester 2008/09 1 / 10

Kapitel 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

Mehr

Hash-Verfahren. Prof. Dr. T. Kudraß 1

Hash-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.

Mehr

Literatur: Jeffrey D. Ullman: Principles of Database Systems, 2 nd Edition 1982, Kapitel 2.2

Literatur: 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

Mehr

Algorithmen & Datenstrukturen Midterm Test 2

Algorithmen & Datenstrukturen Midterm Test 2 Algorithmen & Datenstrukturen Midterm Test 2 Martin Avanzini Thomas Bauereiß Herbert Jordan René Thiemann

Mehr

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

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

Mehr

Inhaltsverzeichnis. Teil 1 Grundlagen 21. Teil 2 Datenstrukturen 85

Inhaltsverzeichnis. 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

Mehr

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

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

Mehr

Seite 1 von 13 Name: Aufgabe 1: Suchalgorithmen (a) (4 Punkte ) Gegeben ist folgendes Streckennetz:

Seite 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

Mehr

Assoziative Container in C++ Christian Poulter

Assoziative 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...

Mehr

Muster. Informatik 3 (Februar 2004) Name: Matrikelnummer: Betrachten Sie den folgenden Suchbaum. A G H J K M N

Muster. 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

Mehr

Grundlagen: Algorithmen und Datenstrukturen

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

Mehr

Stud.-Nummer: Datenstrukturen & Algorithmen Seite 1

Stud.-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

Mehr

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

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

Mehr

Einführung in die Informatik Hashtables

Einfü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

Mehr

Inhaltsverzeichnis. Teil 1 Grundlagen 23

Inhaltsverzeichnis. 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

Mehr

Algorithmen und Datenstrukturen

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

Mehr

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

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

Mehr

Wiederholung ADT Menge Ziel: Verwaltung (Finden, Einfügen, Entfernen) einer Menge von Elementen

Wiederholung 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

Mehr

C# - 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 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

Mehr

Einfü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. 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

Mehr

Seminar Datenbanken Martin Gerstmann

Seminar 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

Ü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

Mehr

Copyright, Page 1 of 7 Hashing

Copyright, 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

Mehr

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

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

Mehr

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

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

Mehr

Datenstrukturen & Algorithmen Lösungen zu Blatt 6 FS 12

Datenstrukturen & 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

Mehr

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

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

Mehr

Robert 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 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

Mehr

Datenstrukturen in Java

Datenstrukturen 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

Mehr

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 16/17. Kapitel 13. Listen. Listen 1

Einfü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

Mehr

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

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

Mehr

Bäume, Suchbäume und Hash-Tabellen

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

Mehr

Robert 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 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

Mehr

1 Abstrakte Datentypen

1 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;

Mehr

Grundlagen: Algorithmen und Datenstrukturen

Grundlagen: Algorithmen und Datenstrukturen Technische Universität München Fakultät für Informatik Lehrstuhl für Effiziente Algorithmen Dr. Hanjo Täubig Tobias Lieber Sommersemester 011 Übungsblatt 30. Mai 011 Grundlagen: Algorithmen und Datenstrukturen

Mehr

OCP Java SE 8. Collections

OCP 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

Mehr

Grundlagen der Informatik. Prof. Dr. Stefan Enderle NTA Isny

Grundlagen 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.

Mehr

Programmiertechnik II

Programmiertechnik 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,...

Mehr

Algorithmen und Datenstrukturen VO 3.0 Vorlesungsprüfung 19. Oktober 2007

Algorithmen 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

Mehr

Klausur Informatik B April Teil I: Informatik 3

Klausur 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.

Mehr

Einstieg in die Informatik mit Java

Einstieg 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

Mehr

Algorithmen und Datenstrukturen 2. Dynamische Datenstrukturen

Algorithmen 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

Mehr

Collections. Arthur Zaczek. Nov 2015

Collections. 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

Mehr

Algorithmen & Datenstrukturen Lösungen zu Blatt 9 HS 16

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

Mehr

8.4 Suffixbäume. Anwendungen: Information Retrieval, Bioinformatik (Suche in Sequenzen) Veranschaulichung: DNA-Sequenzen

8.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:

Mehr

Kap. 5 Hashing. 15./16. VO DAP2 SS /18. Juni 2009

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.

Mehr

8.1 Einführendes Beispiel

8.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

Mehr

Algorithmen 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. Algorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2014 / 2015 Vorlesung 6, Donnerstag 27. November 2013 (Hashing Kollisionsbehandlung, Prioritätswarteschlangen)

Mehr

Datenstrukturen und Algorithmen D-INFK

Datenstrukturen 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

Mehr

Kap. 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. 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.

Mehr

Datenbanken. Interne Datenorganisation:

Datenbanken. 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

Mehr

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

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

Mehr

Javakurs FSS Lehrstuhl Stuckenschmidt. Tag 4 ArrayList, PriorityQueue, HashSet und HashMap

Javakurs 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.

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

Mehr

B*-BÄUME. Ein Index ist seinerseits wieder nichts anderes als eine Datei mit unpinned Records.

B*-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

Mehr

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

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

Mehr

Vorlesung Datenstrukturen

Vorlesung 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

Mehr

Algorithmen und Datenstrukturen

Algorithmen 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