Thema: Delphi Hashing Problem

Einzelnen Beitrag anzeigen

Benutzerbild von negaH
negaH

Registriert seit: 25. Jun 2003
Ort: Thüringen
2.950 Beiträge
 
#8

Re: Hashing Problem

  Alt 17. Aug 2003, 12:27
Also, ich glaube du verstehst nicht wie Hash-Listen funktionieren. Beiu einer Hashliste wird der große Datenwert möglichst eindeutig und gleichverteilt auf einen kleineren Datenwert runtergerechnet. Das dieser Hashwert NICHT alle Werte exakt beschreiben kann ist dann auch logisch. Somit muß bei der Verwendung einer Hashtabelle diese Hashtabelle gespeichert werden UND alle exakten Werte die diese Hashtabelle verwaltet. In deinem Falle musst du also einen HashEntry benutzen mit Int32 als HashWert + Int32 als Index ind Wertetabelle + Int64 als eigentlichen Wert. Somit würde eine Hashtabelle viel mehr Speicher benötigen und da die Komprimierung von 64Bit runter auf 32Bit viel zu gering ist, wäre die hashtabelle zudem ineffizient.

Ich weis das Hashtabellen immer wieder als Allheilmittel bezeichnet werden, aber genau dies ist niemals der Fall. Hashtabellen sind Krücken die bei großen Datenstrukturen die aber auf Grund ihrer Wahrscheinlichkeiten des Datenaufkommens nur ein extrem begrenztes Set unterstützen, Anwendung finden. D.h. einen Hashtabelle ist immer dann effizient wenn sie z.b. 1024 HashWerte auf eine mögliche Datenmenge von 256 Bit Werten von denen aber nur 2048 Werte tatsächlich vorkommen würden, mappen kann.

Gruß Hagen
  Mit Zitat antworten Zitat