Was ist eine gute Hashfunktion?

Was ist eine gute Hashfunktion? Ich sah eine Menge von hash-Funktion und Anwendungen in meinem Datenstrukturen Kurse in der Schule, aber ich lernte vor allem, dass es ziemlich schwer eine gute hash-Funktion. Als Faustregel zur Vermeidung von Kollisionen mein professor sagte, dass:

function Hash(key)
  return key mod PrimeNumber
end

(mod ist der % - operator in C und ähnlichen Sprachen)

mit der Primzahl zu sein, die Größe der hash-Tabelle. Ich verstehe, dass eine eigentlich gute Funktion, um Kollisionen zu vermeiden und ein schnelles, aber wie kann ich das machen, eine bessere ein? Ist es besser, hash-Funktionen für string-Schlüssel gegen numerischen Tasten?

Haben Sie in Betracht gezogen, indem eine oder mehrere der folgenden Allgemeinen Zweck von hash-Funktionen: partow.net/programming/hashfunctions/index.html
In der fnv_func, die Art von p[i] ist char, was passieren wird, mit h nach der ersten iteration? War alles in Zweck?
sagte: Es gibt eine Reihe von Informationen rund um hash-Funktionen in der wikipedia en.wikipedia.org/wiki/Hash_function und der Unterseite dieses Artikels partow.net/programming/hashfunctions/index.html hat algorithmen implementiert in verschiedenen Sprachen.

InformationsquelleAutor Hoffmann | 2008-08-29

Schreibe einen Kommentar