30Fermer32
ThibautLe 10/10/2007 à 23:14
Oui, mais au bout de 10240 mots (par exemple) de 5 lettres en moyenne, l'arbre doit être assez monstrueux. Imagine si on ne place que ces 3 mots de 3 lettres : abc, xyy, uvw.

On a la racine : 256*4 octets
Puis, pour la lettre a, on crée un noeud afin d'y placer le b : 256*4 octets
Puis, on y crée un neud, relié au b, pour y placer le c : 256*4 octets
Pour chaque mot on retrouve cette situation. Résultat : 3x3x256x4= 9 ko.

9 ko pour 3 pauvres mots, c'est pas super smile Et comme le but du topic c'est de retrouver rapidement un mot dans un grand nombre de mots (1000 ?), qui feraient 5 lettres en moyenne, c'est même pas la peine... à moins que la TI89 ait quelques millions de Go cachés quelque part smile

J'ai repensé tout à l'heure à ce que disait onur dans le post ./13. C'est vrai qu'on pourrait réfléchir à une méthode de hachage qui tiendrait compte des lettres les plus utilisées.

Les lettres les plus utilisées, lorsqu'elles sont rencontrées, modifieraient beaucoup la valeur du hash, afin de disperser (répartir) le plus possible dans la table les mots qui les contiennent (car ils sont le plus nombreux).
Les lettres les moins utilisées auraient par conte un effet de "concentration" du hash, car les mots les contenant sont moins nombreux.

Je ne sais pas si c'est judicieux, et surtout je ne sais pas (encore) comment on pourrait concrétiser cette belle théorie.