Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Hashing Streuwertfunktionen Referat von Kim Schröer – Intelligente Dateisysteme WS13/14.

Ähnliche Präsentationen


Präsentation zum Thema: "Hashing Streuwertfunktionen Referat von Kim Schröer – Intelligente Dateisysteme WS13/14."—  Präsentation transkript:

1 Hashing Streuwertfunktionen Referat von Kim Schröer – Intelligente Dateisysteme WS13/14

2 - Übersicht - Hashingfunktionen Ein einfaches Hashing-Schema Kollisionen Ein einfacher Hashing-Algorithmus Progressiver Overflow Buckets Löschen von Datensätzen

3 Hashfunktionen produzieren immer dann eine Adresse, wenn ein Schlüssel gegeben wird

4 Ein einfaches Hashing-Schema h(k) = a Bsp: LOWELL NameASCII (2 B.) Productaddress LOWELL x 79 = h(LOWELL) = 4 home address = 4

5 Ein einfaches Hashing-Schema

6 Kollisionen LO WELLAdresse = 4 OL IVERAdresse = 4 Synonyme

7 Kollisionen

8 Kollisionen (Vermeidung) Eine perfekte Hash-Funktion Kollisionen reduzieren: 1.Verteilen der Datensätze 2.Extra Speicher verwenden 3.mehr als einen Datensatz einer einzelnen Adresse zuweisen

9 Ein einfacher Hash-Algorithmus Schritt 1: LOWELL = L O W E L L | |

10 Ein einfacher Hashing-Algorithmus Schritt 2: | | | | | = Bsp: Grenze von 19937: > > mod > > > mod > > > 7419 mod > > > mod > > > mod > 13883

11 Ein einfacher Hashing-Algorithmus Schritt 3: Bsp: 100 Adressen (0-99) a = s mod n a = mod 100 a = 83

12 Progressiver Overflow

13

14 Buckets Adresse mit mehr als einem Datensatz Überlauf von Datensätzen viel seltener

15 Aufbau eines Buckets

16 Löschen von Datensätzen

17 Irgendwann sehr viele Tombstones Idee: Algorithmus überprüft, ob die DS, die nach einem Tombstone kommen, nicht doch in ihre Home-Addresse passen. Auch die Suchlänge verkürzt sich

18 Andere Techniken zur Vermeidung von Kollisionen Double Hashing

19 Noch Fragen?!

20 Vielen Dank für die Aufmerksamkeit!

21 Bsp: einfacher Hash-Algorithmus int Hash (char key[12], int maxAddress) { int sum = 0; for (int j = 0; j < 12; j += 2) sum = (sum * 100 * key[j] * key[j+1]) % 19937; return sum % maxAddress; } Die Funktion hash verwendet die folding and prime number division, um eine hash Adresse für einen 12 char string.


Herunterladen ppt "Hashing Streuwertfunktionen Referat von Kim Schröer – Intelligente Dateisysteme WS13/14."

Ähnliche Präsentationen


Google-Anzeigen