Was ist Multihash?

Status
Nicht offen für weitere Antworten.

mtintel

Mitglied
Was genau ist multihash? Google hat leider nicht wirklich was brauchbares gefunden (nur um die 70 Seiten und da auch nichts,wo wirklich einem das erklärt wird).Soll angeblich son ähnlich sein Wie Hashmap, aber kann das leider nicht bei goggle und in meinen Programmierbüchern finden. Weiß jemand was das ist, wie das geht (Java/C++) oder wo man infos darüber finden kann (Bücher/Internet)?
 

mtintel

Mitglied
Ich brauch es für die Uni... da müssen wir einige Algorithmen nicht nur einsetzen können, sondern auch wissen, wie effizient sie sind, wie sie funktionieren, wie sie in der Programmiersprache umgesetzt ist,..... also eben nicht nur, wie man sie in ein Programm einbaut, sondern was eben dahinter steht... die ganzen anderen Algorithmen habe ich alle schon problemlos gefunden, nur über MultiHash finde ich eben nichts wie er "funktioiert",wie effizient der ist, welche vor und nachteile er gegen andere dieser "Art" hat,....
 
G

Guest

Gast
Hallo,

MultiHash ist eine Hashtable, die pro Key mehrere Werte speichern kann (Eine normale Hashtable würde einen existierenden Wert einfach ersetzen). Bei einem MultiHash kann man nicht nur feststellen, ob ein Wert zu einem Schlüssel existiert, sondern auch wie viele. Man kann dann noch festlegen, ob identische Werte aufgenommen oder ignoriert werden sollen, ob die Einfüge-Reihenfolge der Werte eine Rolle spielt, usw.
Bei der Implementierung gibt es sicher mehrere Varianten (z.B. eine Liste/ein Set zum Schlüssel hinterlegen, wenn die Hashtable mit BucketHashing arbeitet, hätte man dann sowas wie "Bucket in a Bucket" ;-)).


Gruß,
Karl


P.S.:
Die unter dem Link gezeigte Version würde ich übrigens nicht als repräsentativ nehmen, da das eine etwas fragwürdige Mischung aus einer Hashtable- und einer LinkedList-Implementierung ist, die zudem noch das Verhalten eines Stack nachahmt (schon aufgefallen, dass es kein get(key) gibt?). Dann wird da noch Logik dazu gemixt (ignoreThis), die nicht in die Klasse hinein gehört und noch dazu nicht Plattformunabhängig ist (Lineterminator "\n"). Die Performance dürfte auch nicht berauschend sein.
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Oben