Salut,
j'ai recherché sur les différents forums pour trouver une fonction de hachage qui me conviennent et je n'en ai pas trouvée !
Mon problème est que j'ai un dictionnaire de 211 000 mots et que lorsque je rempli ma table de hachage à l'aide de ma fonction, j'ai un taux de remplissage de 63% seulement alors qu'il faudrait 80% !
J'ai mis en place la fonction de Horner:
en plus, si je ne me trompe pas, c'est également la fonction utilisée en java.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 k=0; for(i=0; i<strlen(mot); i++) k = (k*31 + mot[i])%NB_CASES
je sais qu'il existe des livres qui traitent des problèmes de hachage tels que Horowitz ou encore Froidevaux, mais j'ai pas trop envi de les acheté juste pour çà !
Alors si quelqu'un à une idée, elle sera la bien venue.
PS: les collisions sont gérées par une liste chaînée (çà fait donc baisser le taux)
REPS: NB_LISTES est fixée à 211 000 (le nombre de mots)
l'idéal est d'avoir également 1 à 3 mots par cases
Partager