Beste Weg, um die Größe einer hash-Tabelle

Ich bin meine eigene Implementierung hash eine Tabelle für die Bildung verwendet.

Was wäre der beste Weg, um zu erhöhen wird eine hash-Tabelle der Größe?

Ich derzeit die doppelte hash-array-Größe.

Den Hash-Funktion, die ich verwende, ist: Taste mod arraysize.

Das problem mit diesem ist, dass, wenn die Schlüssel: 2, 4, 6, 8, dann die array-Größe wird nur weiter zunehmen.

Was ist der beste Weg zur überwindung dieses Problems? Gibt es eine bessere Möglichkeit der Erhöhung einer hash-Tabelle der Größe? Würde die änderung meiner Hash-Funktion helfen?

HINWEIS: Meine keys sind alle ganzen zahlen!

  • Schreiben Sie Ihre eigene Implementierung? Warum? Der beste Weg ist noch nie Größenänderung.
  • Ja. Und manchmal Größenänderung erforderlich ist, weil Sie nicht wissen, wie viele Elemente Hinzugefügt werden. Ich mache meine eigene Implementierung, da es für meine CS Kurs in der Universität.
  • Es gibt keine "beste" Möglichkeit. Es wird immer ein Kompromiss sein.
  • (Aber wie schon andere gesagt haben, Sie brauchen, um richtig zu hash-Ihr Schlüssel.)
  • Suche nach einem Weg/Umsetzung die nie brauchen, um die Größe (Kopie) der zugrunde liegenden array - (s)/Struktur(s) ist der beste Weg. Wenn man entwirft einen Weg, um zu wachsen die zugrunde liegende Struktur ohne die Notwendigkeit, Daten kopieren, dann die neue Karte wird sein, in der Nähe von perfekten Daten-storage-Lösung
  • Aber in der Regel Weise zu minimieren, dass das kopieren weniger effizient für die Suche.

InformationsquelleAutor Yahya Uddin | 2014-03-16
Schreibe einen Kommentar