0 Daumen
222 Aufrufe

Frage:

Fügen Sie die oben angegebenen Werte wieder nacheinander in eine Hash-Tabelle mit m = 7 Einträgen ein ( Hash- Funktion h(k) = k mod 7) . Verwenden Sie Open Adressing mit quadratischer Sondierung zur Auflöusung der Kollisionen , d.h. s(j,k) = j^2.

Der Index des j-ten Einfügeversuches ( j >= 0 )  des Schlüssels k ergibt sich somit als

( k - ( j^2 mod 7) + 7) mod 7

d.h. die Einfügeversuches erfolgen mit der Reihenfolgen h(k) . h(k) - 1 , h(k) - 4 , ...
(jeweils mod 7 ) , bis ein freier Eintrag vorliegt.

Avatar von

1 Antwort

0 Daumen

Antwort mit KI erzeugt

Um die Aufgabe zu lösen, müssen wir jeden Schlüssel nacheinander in eine Hash-Tabelle mit \( m = 7 \) Einträgen einfügen. Die Hash-Funktion ist definiert als \( h(k) = k \mod 7 \). Bei Kollisionen verwenden wir Open Adressing mit quadratischer Sondierung, wobei die Sondierungsfunktion \( s(j, k) = j^2 \) für den \( j \)-ten Einfügeversuch ist.

Wir betrachten den Index des \( j \)-ten Einfügeversuchs für den Schlüssel \( k \) gemäß der Formel:
\( \text{Index} = (h(k) - j^2 \mod 7 + 7) \mod 7 \)

Schritte der Berechnung:

1. Berechnen Sie die Initial-Position \( h(k) = k \mod 7 \).
2. Wenn diese Position bereits belegt ist, berechnen Sie die nächste Position unter Verwendung der quadratischen Sondierung \( s(j, k) = j^2 \).

Angenommene Reihenfolge der Schlüssel: 10, 22, 31, 4, 15, 28.

Berechnungsschritte:

Einfügen von Schlüssel 10:

1. Berechne Initial-Position: \( h(10) = 10 \mod 7 = 3 \).
2. Platz 3 ist frei, 10 wird an Position 3 eingefügt.

Hash-Tabelle: [-, -, -, 10, -, -, -]

Einfügen von Schlüssel 22:

1. Berechne Initial-Position: \( h(22) = 22 \mod 7 = 1 \).
2. Platz 1 ist frei, 22 wird an Position 1 eingefügt.

Hash-Tabelle: [-, 22, -, 10, -, -, -]

Einfügen von Schlüssel 31:

1. Berechne Initial-Position: \( h(31) = 31 \mod 7 = 3 \).
2. Platz 3 ist belegt, verwende quadratische Sondierung:
- \( j = 1 \): \((h(31) - 1^2 \mod 7 + 7) \mod 7 = (3 - 1 \mod 7 + 7) \mod 7 = (9) \mod 7 = 2\)
3. Platz 2 ist frei, 31 wird an Position 2 eingefügt.

Hash-Tabelle: [-, 22, 31, 10, -, -, -]

Einfügen von Schlüssel 4:

1. Berechne Initial-Position: \( h(4) = 4 \mod 7 = 4 \).
2. Platz 4 ist frei, 4 wird an Position 4 eingefügt.

Hash-Tabelle: [-, 22, 31, 10, 4, -, -]

Einfügen von Schlüssel 15:

1. Berechne Initial-Position: \( h(15) = 15 \mod 7 = 1 \).
2. Platz 1 ist belegt, verwende quadratische Sondierung:
- \( j = 1 \): \((h(15) - 1^2 \mod 7 + 7) \mod 7 = (1 - 1 \mod 7 + 7) \mod 7 = (7) \mod 7 = 0\)
3. Platz 0 ist frei, 15 wird an Position 0 eingefügt.

Hash-Tabelle: [15, 22, 31, 10, 4, -, -]

Einfügen von Schlüssel 28:

1. Berechne Initial-Position: \( h(28) = 28 \mod 7 = 0 \).
2. Platz 0 ist belegt, verwende quadratische Sondierung:
- \( j = 1 \): \((h(28) - 1^2 \mod 7 + 7) \mod 7 = (0 - 1 \mod 7 + 7) \mod 7 = (6) \mod 7 = 6\)
3. Platz 6 ist frei, 28 wird an Position 6 eingefügt.

Hash-Tabelle: [15, 22, 31, 10, 4, -, 28]

Die finale Hash-Tabelle sieht wie folgt aus: [15, 22, 31, 10, 4, -, 28].

Damit haben wir alle Schlüssel erfolgreich in die Hash-Tabelle eingefügt und Kollisionen mithilfe der quadratischen Sondierung gelöst.
Avatar von

Ein anderes Problem?

Stell deine Frage

Willkommen bei der Stacklounge! Stell deine Frage einfach und kostenlos

x
Made by a lovely community