Übersicht. Datenstrukturen und Algorithmen. Einführung (II) Einführung (I) Vorlesung 12: Hashing I (K11) Counting Sort. Joost-Pieter Katoen
|
|
- Frida Günther
- vor 5 Jahren
- Abrufe
Transkript
1 Übersicht Datenstrukturen und Algorithen Vorlesung 2: (K) Joost-Pieter Katoen Lehrstuhl für Inforatik 2 Software Modeling and Verification Group 4. Juni Joost-Pieter Katoen Datenstrukturen und Algorithen /38 Joost-Pieter Katoen Datenstrukturen und Algorithen 2/38 Einführung (I) Dictionary (Wörterbuch) Das Dictionary (auch: Map, assoziatives Array) speichert Inforationen, die jederzeit anhand ihres Schlüssels abgerufen werden können. Weiterhin: Die Daten sind dynaisch gespeichert. Eleent dictsearch(dict d, int k) gibt die in d zu Schlüssel k gespeicherten Inforationen zurück. void dictinsert(dict d, Eleent e) speichert Eleent e unter seine Schlüssel e.key in d. void dictdelete(dict d, Eleent e) löscht das Eleent e aus d, wobei e in d enthalten sein uss. Beispiel Syboltabelle eines Copilers, wobei die Schlüssel Strings (etwa Bezeichner) sind. Einführung (II) Proble Welche Datenstrukturen sind geeignet, u ein Dictionary zu ipleentieren? Heap: Einfügen und Löschen sind effizient. Aber was ist it Suche? Sortiertes Array/Liste: Einfügen ist i Worst-Case linear. Rot-Schwarz-Bau: Alle Operationen sind i Worst-Case logarithisch. Lösung Unter realistischen Annahen benötigt eine Hash-Tabelle i schnitt O() für alle Operationen. Joost-Pieter Katoen Datenstrukturen und Algorithen 3/38 Joost-Pieter Katoen Datenstrukturen und Algorithen 4/38
2 Übersicht (I) Alloziere ein Array (die Direkte-Adressierungs-Tabelle), so dass es für jeden öglichen Schlüssel eine() Position gibt. Jedes Array-Eleent enthält einen Pointer auf die gespeicherte Inforation. Der Einfachheit halber vernachlässigen wir in der Vorlesung die zu den Schlüsseln gehörenden Inforationen. Mit Schlüsselenge U = {0,,..., n } ergibt sich: Eine Direkte-Adressierungs-Tabelle T[0..n-], wobei T[k] zu Schlüssel k gehört. datsearch(t, int k): return T[k]; datinsert(t, Eleent e): T[e.key] = e; datdelete(t, Eleent e): T[e.key] = null; Die Laufzeit jeder Operation ist i Worst-Case Θ(). Joost-Pieter Katoen Datenstrukturen und Algorithen 5/38 Joost-Pieter Katoen Datenstrukturen und Algorithen 6/38 (II) Duplikate in Linearzeit erkennen Schlüsselenge 0 K 3 9 benutzte Schlüssel Direkte-Adressierungs-Tabelle T Schlüssel n = 0 U Alle Eleente seien ganze Zahlen zwischen 0 und k, wobei k Θ(n). bool checkduplicates(int E[n], int n, int k) { 2 int histogra[k] = 0; // "Direkte-Adressierungs-Tabelle" 3 for (int i = 0; i < n; i++) { 4 if (histogra[e[i]] > 0) { 5 return true; // Duplikat gefunden 6 } else { 7 histogra[e[i]]++; // Zähle Häufigkeit 8 } 9 } 0 return false; // keine Duplikate } Joost-Pieter Katoen Datenstrukturen und Algorithen 7/38 Joost-Pieter Katoen Datenstrukturen und Algorithen 8/38
3 Idee. Berechne Häufigkeit 2. Berechne Position von x = Anzahl der Eleente x 3. Erzeuge Ausgabearray anhand dieser neuen Positionen Alle Eleente seien ganze Zahlen zwischen 0 und k, wobei k Θ(n). int[n] countsort(int E[n], int n, int k) { 2 int histogra[k] = 0; // "Direkte-Adressierungs-Tabelle" 3 for (int i = 0; i < n; i++) { 4 histogra[e[i]]++; // Zähle Häufigkeit 5 } 6 for (int i = ; i < k; i++) { // Berechne Position 7 histogra[i] = histogra[i] + histogra[i - ]; 8 } 9 // Erzeuge Ausgabe 0 int result[n]; for (int i = n - ; i >= 0; i--) { // stabil: rückwärts 2 histogra[e[i]]--; 3 result[histogra[e[i]]] = E[i]; 4 } 5 return result; 6 } Worst-Case Zeitkoplexität: Θ(n) Joost-Pieter Katoen Datenstrukturen und Algorithen 9/38 Joost-Pieter Katoen Datenstrukturen und Algorithen 0/38 : Beispiel : Beispiel Eingabe Eingabe Histogra Histogra Positionen Ausgabe Joost-Pieter Katoen Datenstrukturen und Algorithen /38 Joost-Pieter Katoen Datenstrukturen und Algorithen /38
4 : Beispiel Eingabe Positionen Ausgabe Joost-Pieter Katoen Datenstrukturen und Algorithen /38 (II) Proble Wir sortieren also it Worst-Case Koplexität Θ(n), obwohl wir als untere Schranke Θ(n log n) bewiesen hatten? Lösung Dieser Algorithus ist nicht it Quicksort, Heapsort, usw. vergleichbar denn er basiert nicht auf Vergleich von Eleenten, sondern auf Häufigkeiten. Das funktioniert, inde wir Direkte-Adressierung (Einfügen, Suchen, Löschen in Θ()) ausnutzen. Hauptproble: Überäßiger Speicherbedarf für das Array. Zu Beispiel bei Strings it 20 Zeichen (5 bit/zeichen) als Schlüssel benötigt an = 2 00 Arrayeinträge. Können wir diesen riesigen Speicherbedarf vereiden und effizient bleiben? Ja! it Hashing. Joost-Pieter Katoen Datenstrukturen und Algorithen 2/38 Übersicht Hashing (I) Praktisch wird nur ein kleiner Teil der Schlüssel verwendet, d. h. K U. Bei Direkter-Adressierung ist der größte Teil von T verschwendet. Das Ziel von Hashing ist: Einen extre großen Schlüsselrau auf einen vernünftig kleinen Bereich von ganzen Zahlen abzubilden. Dass zwei Schlüssel auf die selbe Zahl abgebildet werden, soll öglichst unwahrscheinlich sein. Hashfunktion, Hashtabelle, Hashkollision Eine Hashfunktion bildet einen Schlüssel auf einen Index der Hashtabelle T ab: h : U { 0,,..., } für Tabellengröße und U = n. Wir sagen, dass h(k) der Hashwert des Schlüssels k ist. Das Auftreten von h(k) = h(k ) für k k nennt an eine Kollision. Joost-Pieter Katoen Datenstrukturen und Algorithen 3/38 Joost-Pieter Katoen Datenstrukturen und Algorithen 4/38
5 Hashing (II) Schlüsselenge k 2 K benutzte Schlüssel U k k 4 k 3 k 5 Hashfunktion 0 Hashtabelle h(k ) h(k 2 ) = h(k 3 ) h(k 5 ) h(k 4 ) Kollision Wie finden wir, die einfach auszurechnen sind und Kollisionen iniieren? Wie behandeln wir dennoch auftretende Kollisionen? Joost-Pieter Katoen Datenstrukturen und Algorithen 5/38 Kollisionen: Das Geburtstagsparadoxon (I) Das liegt a Geburtstagsparadoxon Unsere Hashfunktion ag noch so gut sein, wir sollten auf Kollisionen vorbereitet sein! Die Wahrscheinlichkeit, dass dein Nachbar a selben Tag wie du Geburtstag hat ist 365 0,0027. Fragt an 23 Personen, wächst die Wahrscheinlichkeit auf ,063. Sind aber 23 Personen in eine Rau, dann haben zwei von ihnen den selben Geburtstag it Wahrscheinlichkeit ( ) 0,5 365 Joost-Pieter Katoen Datenstrukturen und Algorithen 6/38 Kollisionen: Das Geburtstagsparadoxon (II) Kollisionen: Das Geburtstagsparadoxon (III) Auf Hashing angewendet bedeutet das: Die Wahrscheinlichkeit keiner Kollision nach k Einfügevorgängen in einer -eleentigen Tabelle ist: Dieses Produkt geht gegen k + k i = i=0 Etwa bei = 365 ist die Wahrscheinlichkeit für k 50 praktisch 0. Wahrscheinlichkeit keiner Kollision Anzahl Einfügungen n Joost-Pieter Katoen Datenstrukturen und Algorithen 7/38 Joost-Pieter Katoen Datenstrukturen und Algorithen 8/38
6 Übersicht Kollisionsauflösung durch (I) Idee Alle Schlüssel, die zu gleichen Hash führen, werden in einer verketteten Liste gespeichert. [Luhn 953] K k 2 U k k 4 k 3 k 5 k 7 k 6 0 k k 3 k 2 k 6 k 7 k 5 k 4 Joost-Pieter Katoen Datenstrukturen und Algorithen 9/38 Joost-Pieter Katoen Datenstrukturen und Algorithen 20/38 Kollisionsauflösung durch (II) Kollisionsauflösung durch (III) Dictionary-Operationen bei (inforell) hcsearch(int k): Suche nach eine Eleent it Schlüssel k in der Liste T[h(k)]. hcinsert(eleent e): Setze Eleent e an das Ende der Liste T[h(e.key)]. hcdelete(eleent e): Lösche Eleent e aus der Liste T[h(e.key)]. Worst-Case Koplexität Angenoen, die Berechnung von h(k) ist recht effizient, etwa Θ(). Die Koplexität ist: Suche: Proportional zur Länge der Liste T [h(k)]. Einfügen: Konstant (ohne Überprüfung, ob das Eleent schon vorhanden ist). Löschen: Proportional zur Länge der Liste T [h(k)]. I Worst-Case haben alle Schüssel den selben Hashwert. Suche und Löschen hat dann die selbe Worst-Case Koplexität wie Listen: Θ(n). I Average-Case ist Hashing it aber dennoch effizient! Joost-Pieter Katoen Datenstrukturen und Algorithen 2/38 Joost-Pieter Katoen Datenstrukturen und Algorithen 22/38
7 Average-Case-Analyse von (I) Average-Case-Analyse von (II) Annahen: Es gebe n ögliche Schlüssel und Hashtabellenpositionen, n. Gleichverteiltes Hashing: Jeder Schlüssel wird it gleicher Wahrscheinlichkeit und unabhängig von den anderen Schlüssel auf jedes der Slots abgebildet. Der Hashwert h(k) kann in konstanter Zeit berechnet werden. O, Θ, Ω erweitert Aus technischen Gründen erweitern wir die Definition von O, Θ und Ω auf Funktionen it zwei Paraetern. Beispielsweise ist g O(f ) gdw. c > 0, n 0, 0 it n n 0, 0 : 0 g(n, ) c f (n, ) Der Füllgrad der Hashtabelle T ist α(n, ) = n. Auch die durchschnittliche Länge der Liste T[h(k)] ist α Wieviele Eleente aus T[h(k)] üssen nun i Schnitt untersucht werden, u den Schlüssel k zu finden? Unterscheide erfolgreiche von erfolgloser Suche (wie in Vorlesung ). Joost-Pieter Katoen Datenstrukturen und Algorithen 23/38 Joost-Pieter Katoen Datenstrukturen und Algorithen 24/38 Average-Case-Analyse von (III) Average-Case-Analyse von (IV) Erfolglose Suche Die erfolglose Suche benötigt Θ( + α) Zeit i Average-Case. Die erwartete Zeit, u Schlüssel k zu finden ist gerade die Zeit, u die Liste T[h(k)] zu durchsuchen. Die erwartete Länge dieser Liste ist α. Das Berechnen von h(k) benötige nur eine Zeiteinheit. Insgesat erhält an + α Zeiteinheiten i Durchschnitt. Erfolgreiche Suche Die erfolgreiche Suche benötigt i Average-Case auch Θ( + α). Sei k i der i-te eingefügte Schlüssel und A(k i ) die erwartete Zeit, u k i zu finden: A(k i ) = + Durchschnittliche Anzahl Schlüssel, die in T[h(k_i)] erst nach k i eingefügt wurden Annahe von gleichverteilte Hashing ergibt: A(k i ) = + Durchschnitt über alle n Einfügungen in die Hashtabelle: n j=i+ A(k i ) i= Joost-Pieter Katoen Datenstrukturen und Algorithen 25/38 Joost-Pieter Katoen Datenstrukturen und Algorithen 26/38
8 Average-Case-Analyse von (IV) Die erwartete Anzahl an untersuchten Eleenten bei einer erfolgreichen Suche ist: + Sue aufteilen n i= = n i= = + n j=i+ + n i= j=i+ Vereinfachen (n i) Sue... n i= = + n(n ) n 2 = + n 2 = + α 2 α 2n Vereinfachen und dait in Θ( + α) Koplexität der Dictionary-Operationen it Vorausgesetzt die Anzahl der Einträge ist (wenigstens) proportional zu n, dann ist der Füllgrad α(n, ) = n O() = O(). Dait benötigen alle Operationen i Durchschnitt O(). Weil das auch Suche it einschließt, können wir i Average-Case it O(n) sortieren. Joost-Pieter Katoen Datenstrukturen und Algorithen 27/38 Joost-Pieter Katoen Datenstrukturen und Algorithen 28/38 Übersicht Anwendungen von Digitale Zertifikate (SSL: sha bzw. d5) Digitale Signaturen in der Praxis unterschreibt an eist nicht die Nachricht, sondern ihren Hashwert Passwortverschlüsselung z.b. htpasswd (Apache): d5, sha und Mediawiki: d5 Verifikation von Downloads (üblich: d5) Versionskontrollsystee z.b. subversion: d5, git: sha Datenblockverifikation bei Filesharingprograen (wie Bittorrent) Joost-Pieter Katoen Datenstrukturen und Algorithen 29/38 Joost-Pieter Katoen Datenstrukturen und Algorithen 30/38
9 Gängige (kryptographische) Hashfunktion Eine Hashfunktion bildet einen Schlüssel auf eine ganze Zahl (d. h. einen Index) ab. Was acht eine gute Hashfunktion aus? Die Hashfunktion h(k) sollte einfach zu berechnen sein, sie sollte surjektiv auf der Menge 0... sein, sie sollte alle Indizes it öglichst gleicher Häufigkeit verwenden, und ähnliche Schlüssel öglichst breit auf die Hashtabelle verteilen. Drei Basistechniken, eine gute Hashfunktion zu erhalten: Die Divisionsethode, die Multiplikationsethode, und universelles Hashing. Joost-Pieter Katoen Datenstrukturen und Algorithen 3/38 Joost-Pieter Katoen Datenstrukturen und Algorithen 32/38 Divisionsethode Multiplikationsethode (I) Divisionsethode Hashfunktion: h(k) = k od Bei dieser Methode uss der Wert von sorgfältig gewählt werden. Für = 2 p ist h(k) einfach die letzte p Bits. Besser ist es, h(k) abhängig von ehreren Bits zu achen. Gute Wahl ist pri und nicht zu nah an einer Zweierpotenz. Beispiel Strings it 2000 Zeichen als Schlüssel. Wir erlauben durchschnittlich 3 Sondierungen für die erfolglose Suche. Wähle 2000/3 70. Nähe an 2000/3, Prizahl, und nicht in der Näje von Zweierpotenz Multiplikationsethode Hashfunktion: h(k) = (k c od ) für 0 < c < k c od ist der Nachkoateil von k c, d. h. k c k c. Knuth epfiehlt c ( 5 )/2 0,62. Der Wert von ist hier nicht kritisch. Joost-Pieter Katoen Datenstrukturen und Algorithen 33/38 Joost-Pieter Katoen Datenstrukturen und Algorithen 34/38
10 Multiplikationsethode (II) Hashfunktion: h(k) = (k c od ). Das übliche Vorgehen nit = 2 p und c = s 2, wobei 0 < s < 2 w. Dann: w Berechne zunächst k s (= k c 2 w ). Teile durch 2 w, verwende nur die Nachkoastellen. Multipliziere it 2 p und verwende nur den ganzzahligen Anteil. w Bits Schlüssel k c 2 w p Bits extrahieren h(k) Universelles Hashing (I) Das größte Proble bei Hashing ist, dass es ier eine ungünstige Sequenz von Schlüsseln gibt, die auf den selben Slot abgebildet werden. Idee Wähle zufällig eine Hashfunktion aus einer gegebenen kleinen Menge H, unabhängig von den verwendeten Schlüsseln. Eine Menge ist universell, wenn der Anteil der Funktionen aus H, so dass k und k kollidieren ist H. d. h., die W lichkeit einer Kollision von k und k ist H H =. Für universelles Hashing ist die erwartete Länge der Liste T[k]. Gleich α, wenn k nicht in T enthalten ist. 2. Gleich +α, wenn k in T enthalten ist. Joost-Pieter Katoen Datenstrukturen und Algorithen 35/38 Joost-Pieter Katoen Datenstrukturen und Algorithen 36/38 Universelles Hashing (II) Nächste Vorlesung Beispiel Definiere die Eleente der Klasse H von durch: h a,b (k) = ((a k + b) od p) od p sei Prizahl it p > und p > größter Schlüssel. Die ganzen Zahlen a ( a < p) und b (0 b < p) werden erst bei der Ausführung gewählt. Nächste Vorlesung Montag. Juni, 08:30 (Hörsaal H0). Bis dann! Donnerstag 7. Juni, 8:00: Präsenzübung Freittag 8. Juni: keine Vorlesung, ab 4:00 Inforatik Soerfest Die Klasse der obigen h a,b ist universell. Joost-Pieter Katoen Datenstrukturen und Algorithen 37/38 Joost-Pieter Katoen Datenstrukturen und Algorithen 38/38
Hashing I. 1 Direkte Adressierung. 2 Grundlagen des Hashings. 3 Kollisionsauflösung durch Verkettung. 4 Hashfunktionen. 5 Offene Adressierung
Ü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
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
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
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
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
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... ˆΦ =
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
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
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,
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
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:
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
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:
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
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 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
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
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:
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
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
MehrProgramm heute. Algorithmen und Datenstrukturen (für ET/IT) Such-Algorithmen für Wörterbücher. Wörterbuch. Sommersemester Dr.
Programm heute Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 0 Fortgeschrittene Datenstrukturen Dr. Stefanie Demirci Computer Aided Medical Procedures Technische Universität München Such-Algorithmen
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
MehrHumboldt-Universität zu Berlin Berlin, den Institut für Informatik
Humboldt-Universität zu Berlin Berlin, den 15.06.2015 Institut für Informatik Prof. Dr. Ulf Leser Übungen zur Vorlesung M. Bux, B. Grußien, J. Sürmeli, S. Wandelt Algorithmen und Datenstrukturen Übungsblatt
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
MehrErinnerung VL vom
Erinnerung VL vom 09.05.2016 Analyse von Hashtabellen mit verketteten Listen Erwartete Laufzeit O(1) bei zuf. Hashfkt. und falls M O(m) Guter Ersatz (hier) für zuf. Hashfkt.: universelle Hashfunktionen
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:
MehrÜbungsklausur Algorithmen I
Jun.-Prof. Hofheinz, Jun.-Prof. Meyerhenke (ITI, KIT) 08.06.2015 Übungsklausur Algorithmen I Aufgabe 1. (Algorithm Engineering) Nennen Sie zwei Konzepte, die Algorithm Engineering im Gegensatz zu theoretischer
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
Mehr4. Übung zu Algorithmen I 17. Mai 2017
4. Übung zu Algorithmen I 17. Mai 2017 Björn Kaidel bjoern.kaidel@kit.edu (mit Folien von Julian Arz, Timo Bingmann, Lisa Kohl, Christian Schulz, Sebastian Schlag und Christoph Striecks) Organisatorisches
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
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
Mehrf 1 (n) = log(n) + n 2 n 5 f 2 (n) = n 3 + n 2 f 3 (n) = log(n 2 ) f 4 (n) = n n f 5 (n) = (log(n)) 2
Prof. aa Dr. E. Ábrahám Datenstrukturen und Algorithmen SS Lösung - Präsenzübung.05.0 F. Corzilius, S. Schupp, T. Ströder Aufgabe (Asymptotische Komplexität): (6 + 0 + 6 = Punkte) a) Geben Sie eine formale
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
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
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
MehrDatenstrukturen und Algorithmen. Vorlesung 9
Datenstrukturen und Algorithmen Vorlesung 9 Inhaltsverzeichnis Vorige Woche: ADT Deque ADT Prioritätsschlange Binomial-Heap Heute betrachten wir: Aufgaben Hashtabellen Aufgabe I Rot-Schwarz Kartenspiel:
MehrAsymptotische Laufzeitanalyse: Beispiel
Asyptotische Laufzeitanalyse: n = length( A ) A[j] = x GZ Algorithen u. Datenstrukturen 1 31.10.2013 Asyptotische Laufzeitanalyse: n = length( A ) A[j] = x GZ Algorithen u. Datenstrukturen 2 31.10.2013
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
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
MehrProgrammiertechnik II
Programmiertechnik II Hash-Tabellen Überblick Hashfunktionen: Abbildung von Schlüsseln auf Zahlen Hashwert: Wert der Hashfunktion Hashtabelle: Symboltabelle, die mit Hashwerten indiziert ist Kollision:
MehrÜbersicht. Datenstrukturen und Algorithmen. Übersicht. Motivation. Vorlesung 10: Binäre Suchbäume
Übersicht Datenstrukturen und lgorithmen Vorlesung : Joost-Pieter Katoen Lehrstuhl für Informatik 2 Software Modeling and Verification Group http://moves.rwth-aachen.de/teaching/ss-/dsal/ 1 Suche Einfügen
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
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
MehrHashtabellen. Hashverfahren, was ist das eigentlich?
Hashverfahren, was ist das eigentlich? Das Hashverfahren ist ein Algorithmus zum Suchen von Datenobjekten in großen Datenmengen. Es basiert auf der Idee, dass eine mathematische Funktion die Position eines
MehrÜbersicht. Datenstrukturen und Algorithmen. Divide-and-Conquer. Übersicht. Vorlesung 9: Quicksort (K7)
Datenstrukturen und Algorithmen Vorlesung 9: (K7) Joost-Pieter Katoen Algorithmus Lehrstuhl für Informatik 2 Software Modeling and Verification Group http://moves.rwth-aachen.de/teaching/ss-5/dsal/ 2 7.
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:
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
MehrTutoraufgabe 1 (Sortieralgorithmus):
Prof. aa Dr. Ir. Joost-Pieter Katoen Datenstrukturen und Algorithmen SS Tutoriumslösung - Übung 4 (Abgabe 2..2) Christian Dehnert, Friedrich Gretz, Benjamin Kaminski, Thomas Ströder Tutoraufgabe (Sortieralgorithmus):
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
MehrDatenstrukturen und Algorithmen
Joost-Pieter Katoen Datenstrukturen und Algorithmen 1/54 Datenstrukturen und Algorithmen Vorlesung 1: Algorithmische Komplexität Joost-Pieter Katoen Lehrstuhl für Informatik 2 Software Modeling and Verification
Mehrlim log 2n n = > 0 Da es einen Limes gibt, gibt es auch einen Limes inferior, der gleich diesem Limes ist.
Prof. aa Dr. Ir. Joost-Pieter Katoen Christian Dehnert, Jonathan Heinen, Thomas Ströder, Sabrina von Styp Aufgabe 1 (O-Notation): Beweisen oder widerlegen Sie die folgenden Aussagen: (3 + 3 + 4 = 10 Punkte)
MehrÜbersicht. Datenstrukturen und Algorithmen. Übersicht. Heaps. Vorlesung 8: Heapsort (K6) Joost-Pieter Katoen. 7. Mai 2015
Datenstrukturen und Algorithmen Vorlesung 8: (K6) 1 Joost-Pieter Katoen Lehrstuhl für Informatik Software Modeling and Verification Group http://moves.rwth-aachen.de/teaching/ss-15/dsal/ 7. Mai 015 3 Joost-Pieter
Mehrsort hash uncompress merge & mark hash collisions
Julian Arz, Timo Bingmann, Sebastian Schlag INSTITUT FÜR THEORETISCHE INFORMATIK, PROF. SANDERS hash sort... compress uncompress merge & mark hash collisions 1 KIT Julian Universität Arz, des Timo LandesBingmann,
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)
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
MehrInformatik II, SS 2016
Informatik II - SS 2016 (Algorithmen & Datenstrukturen) Vorlesung 9 (25.5.2016) Hashtabellen II, Binäre Suchbäume I Algorithmen und Komplexität Hashtabellen mit Chaining Jede Stelle in der Hashtabelle
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
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 2011 Mittelklausur 5. Juli 2011 Grundlagen: Algorithmen und Datenstrukturen
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:
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
MehrPräsenzübung Datenstrukturen und Algorithmen SS 2014
Prof. aa Dr. E. Ábrahám F. Corzilius, S. Schupp, T. Ströder Präsenzübung Datenstrukturen und Algorithmen SS 2014 Vorname: Nachname: Studiengang (bitte genau einen markieren): Informatik Bachelor Informatik
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
MehrHeapsort / 1 A[1] A[2] A[3] A[4] A[5] A[6] A[7] A[8]
Heapsort / 1 Heap: Ein Array heißt Heap, falls A [i] A [2i] und A[i] A [2i + 1] (für 2i n bzw. 2i + 1 n) gilt. Beispiel: A[1] A[2] A[3] A[4] A[5] A[6] A[7] A[8] Heapsort / 2 Darstellung eines Heaps als
MehrInformatik II, SS 2018
Informatik II - SS 2018 (Algorithmen & Datenstrukturen) Vorlesung 4 (30.4.2018) Sortieren IV Algorithmen und Komplexität Analyse Merge Sort Laufzeit T(n) setzt sich zusammen aus: Divide und Merge: O n
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
MehrOrdnen Sie die folgenden Funktionen nach ihrer asymptotischer Komplexität in aufsteigender Reihenfolge: i=1 4i + n = 4 n. i=1 i + 3n = 4 ( n(n+1)
für Informatik Prof. aa Dr. Ir. Joost-Pieter Katoen Christian Dehnert, Friedrich Gretz, Benjamin Kaminski, Thomas Ströder Tutoraufgabe (Asymptotische Komplexität): Ordnen Sie die folgenden Funktionen nach
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
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
MehrKlausur Algorithmen und Datenstrukturen SS August Arbeitszeit 90 min
TU Ilmenau, Fakultät für Informatik und Automatisierung FG Komplexitätstheorie und Effiziente Algorithmen Univ.-Prof. Dr. M. Dietzfelbinger, Dipl.-Ing. C. Mattern Klausur Algorithmen und Datenstrukturen
MehrAlgorithmentheorie Treaps
Algorithentheorie 04 - Treaps Prof. Dr. S. Albers Das Wörterbuch-Proble Gegeben: Universu (U,
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..
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
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
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
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
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
MehrOrdnen Sie die folgenden Funktionen nach ihrer asymptotischer Komplexität in aufsteigender Reihenfolge: i=1 4i + n = 4 n. i=1 i + 3n = 4 ( n(n+1)
für Informatik Prof. aa Dr. Ir. Joost-Pieter Katoen Tutoriumslösung - Übung (Abgabe 9.04.05) Christian Dehnert, Friedrich Gretz, Benjamin Kaminski, Thomas Ströder Tutoraufgabe (Asymptotische Komplexität):
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 I - Tutorium 28 Nr. 6
Algorithmen I - Tutorium 28 Nr. 6 08.06.2017: Spaß mit Sortieren, Aufgaben und Wiederholung Marc Leinweber marc.leinweber@student.kit.edu INSTITUT FÜR THEORETISCHE INFORMATIK (ITI), PROF. DR. JÖRN MÜLLER-QUADE
MehrInformatik II, SS 2018
Informatik II - SS 2018 (Algorithmen & Datenstrukturen) Vorlesung 8 (14.5.2018) Hashtabellen III Algorithmen und Komplexität Hashtabellen mit Chaining Jede Stelle in der Hashtabelle zeigt auf eine verkette
MehrKarlsruher Institut für Technologie Institut für Theoretische Informatik. Übungsklausur Algorithmen I
Vorname: Karlsruher Institut für Technologie Institut für Theoretische Informatik Prof. Jörn Müller-Quade 21.06.2017 Übungsklausur Algorithmen I Aufgabe 1. Kleinaufgaben 8 Punkte Aufgabe 2. Hashing 6 Punkte
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
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
MehrDatenstrukturen und Algorithmen
Datenstrukturen und Algorithmen VO 708.031 29.11.2012 elmar.rueckert@igi.tugraz.at 1 WH: Untere Schranke für SorGeren Die bisher betrachteten schnellen Sor$eralgorithmen (MergeSort, HeapSort, QuickSort)
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
MehrHashing. Übersicht. 5 Hashing
Übersicht 5 Hashing Hashtabellen Hashing with Chaining Universelles Hashing Hashing with Linear Probing Anpassung der Tabellengröße Perfektes Hashing Diskussion / Alternativen H. Täubig (TUM) GAD SS 14
MehrNAME, VORNAME: Studiennummer: Matrikel:
TU Ilmenau, Fakultat IA Institut für Theoretische Informatik FG Komplexitätstheorie und Effiziente Algorithmen Prof. Dr. (USA) M. Dietzfelbinger Klausur Algorithmen und Datenstrukturen SS08, Ing.-Inf.
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
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
MehrÜbung 3 Musterlösung
Prof aa Dr Ir Joost-Pieter Katoen Sebastian Junges, Benjamin Kaminski, David Korzeniewski, Tim Quatmann Hinweise: Übung 3 Musterlösung Die Lösungen müssen bis Donnerstag, den 03 Mai um 16:00 Uhr in den
MehrÜbungsklausur Algorithmen I
Name: Vorname: Matrikelnr.: Tutorium: Jun.-Prof. Hofheinz, Jun.-Prof. Meyerhenke (ITI, KIT) 08.06.2015 Übungsklausur Algorithmen I Aufgabe 1. (Algorithm Engineering) [2 Punkte] Nennen Sie zwei Konzepte,
MehrÜbungsklausur Algorithmen I
Universität Karlsruhe, Institut für Theoretische Informatik Prof. Dr. P. Sanders 26.5.2010 svorschlag Übungsklausur Algorithmen I Hiermit bestätige ich, dass ich die Klausur selbständig bearbeitet habe:
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
MehrLösungsvorschläge zur Klausur 1661 Datenstrukturen I
Lösungsvorschläge zur Klausur 1661 Datenstrukturen I 23.09.2006 Seite 2 Lösungsvorschläge zur Klausur vom 23.09.2006 Kurs 1661 Datenstrukturen I Aufgabe 1 (a) algebra pointset sorts pointset, point, real,
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
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
Mehr