Quelle est la meilleure fonction de hachage 32 bits pour les chaînes de caractères relativement courtes ?
Les chaînes sont des noms de balises qui se composent de lettres anglaises, de chiffres, d'espaces et de quelques caractères supplémentaires ( #
, $
, .
, ...). Par exemple : Unit testing
, C# 2.0
.
Je recherche le "meilleur", c'est-à-dire le "minimum de collisions". Les performances ne sont pas importantes pour mes objectifs.
1 votes
Duplicata possible stackoverflow.com/questions/251346/
2 votes
Pas tout à fait, car ma question est plus spécifique en termes de taille de hachage et ignore les performances. En outre, je ne cherche pas seulement à a Je sais qu'il existe des fonctions CRC32 et FNV32, mais laquelle est la meilleure pour mon domaine ?
0 votes
Votre liste de balises est-elle fixée à un ensemble de chaînes ou s'enrichira-t-elle de manière dynamique au fil du temps ?
0 votes
Les étiquettes sont ajoutées par les gens, je ne peux donc pas les prédire (mais il y a des limites de longueur et de caractères).
0 votes
@Andrey : Quelles sont les limites ?
0 votes
Longueur maximale : 20, jeu de caractères actuel :
[A-Za-z\d\.#$@\-\ ]
(cela peut se développer légèrement si je remarque un symbole utile que j'ai manqué).26 votes
La page suivante présente plusieurs implémentations de fonctions de hachage d'usage général qui sont efficaces et présentent un minimum de collisions : partow.net/programming/hashfunctions/index.html