Hashing < Sonstiges < Hochschule < Informatik < Vorhilfe
|
Aufgabe | Die Schlüsselmenge S sei durch 7-stellige Zahlen aus dem Bereich [0000000, 9999999] gegeben.
Die Hashfunktion ist h(s) = s mod 1000. Bestimmen Sie die Adressen folgender Schlüssel und
tragen Sie diese in die bereits mit anderen Werten belegte Hashtabelle ein.
Als Kollisionsauflösungsstrategie ist lineares Sondieren (links)
zu verwenden. Die Schrittweite des Parameters i ist 1.
Hinweis: Falls benötigt, finden Sie weitere Tabellen im Anhang A.
Schlüsselfolge (sequentiell von links nach rechts abzuarbeiten):
2222008, 8888012, 4444004, 9999006, 6666006, 3333006, 0000005, 7777004
h(s) Schlüssel s
1
2
3
4
5
6
7
8 8888808
9 0000009
10
11
12 1111012
13
14
15
16
17
18
19
20 |
Hallo,
beschäftige mich gerade mit dem Thema Hashing.
Nun bin ich auf die ehemalige Klausuraufgabe gestoße die ich versucht habe zu lösen. Ich hoffe jemand kann mal drüber gucken ob ich es richtig verstanden habe.
PS: Die Werte 8888808; 0000009; 1111012 waren schon eingetragen.
lineares sondieren:
[mm] h\h_{0}(S)=h(s); (h\h_{i}(s)=h\h_{0}(S)+i)mod [/mm] m
So wie ich es verstanden habe.
1. H(s)=s mod 1000
benutzen und die Zahlen(schlüssel) für s einsetzen und das Ergeniss ist die Adresse in der die Zahlen(Schlüssel) rein kommen
2. Bei einer Kollision die Funktion für das lineare sondieren benutzen
3. Falls auch hier eine Kollision statt findet, "i" um 1 erhöhen.
h(s) Schlüssel s
1
2
3
4 4444004
5 0000005
6 9999006
7 6666006
8 8888808
9 0000009
10 2222208
11 3333006
12 1111012
13 8888012
14 7777704
15
16
17
18
19
20
Mein Ergebniss
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 02:20 Mi 12.01.2011 | Autor: | matux |
$MATUXTEXT(ueberfaellige_frage)
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 15:47 Do 13.01.2011 | Autor: | Teufel |
Hi!
Sieht richtig aus!
|
|
|
|