J'ai un problème en utilisant btree pour stocker des données de 100.000 mots dans un dictionnaire (un mot comprend une tête et définition), je ne sais pas comment hachage 100.000 mots à 100.000 clé différente avec une fonction de hachage, mon professeur indice que juste hachage 3 premier caractère de mot, mais je ne peux pas l'image ce que ferait avec un mot avoir plus de 3 caractères. aidez-moi s'il vous plaît T_TUtiliser Btree pour stocker des données du dictionnaire?
Répondre
L'idée ici est probablement que les collisions de hachage sont bien: vous calculez un hachage (par exemple en ajoutant les valeurs ASCCI des trois premiers caractères, mais cela ne se qualifie pas comme "hachage" dans le monde réel) et comparez les hachages. Si elles sont égales, vous faites une comparaison de chaînes (plus chère). Comme:
int compare(Node *left, Node *right) {
if (left->hash == right->hash) {
return stringCompare(left, right);
}
if (left->hash < right->hash) {
return -1;
} else {
return 1;
}
}
Merci Gilbert Le Blanc et DarkDust pour votre aide. Mais ça ne peut toujours pas m'aider à sortir du cercle. J'ai beaucoup de questions. Lors de l'ajout de beaucoup de mots (plus de 100.000) Btree besoin de ré-équilibrer beaucoup de temps, et il faudra beaucoup de temps, comment puis-je le réparer? Que puis-je faire avec 2 mots ont les mêmes 3 premières lettres? – kasparov
- 1. stx-btree stocker sur le disque
- 2. Utiliser Active Directory pour stocker des données
- 3. Avantages de BTree + sur BTree
- 4. bon ADT pour implémenter BTREE
- 5. Dictionnaire Python pour stocker des objets socket
- 6. Comment utiliser JSON pour stocker les données du champ d'entrée
- 7. données de base, stocker des images dans un dictionnaire
- 8. Utiliser Entity Framework pour stocker des données spécifiques à l'utilisateur
- 9. Comment utiliser SharedPreferences pour stocker des données dans Android
- 10. Delphi 2010 RTTI: Utiliser TValue pour stocker des données
- 11. Comment utiliser ArrayList pour stocker des données en utilisant ICollection
- 12. Comment utiliser NSMutableDictionary pour stocker et récupérer des données
- 13. XML ou MYSQL. À utiliser pour stocker des données connectées?
- 14. Quelle technique puis-je utiliser pour stocker des données
- 15. Comment utiliser un serveur pour stocker/recevoir des données?
- 16. Dois-je utiliser SQLiteDatabase pour stocker des données?
- 17. Utilisation du repos pour stocker des données dans Sqlite
- 18. Stocker des ints dans un dictionnaire
- 19. Btree détails sur Postgresql
- 20. Comment stocker des données pour un widget?
- 21. Comment utiliser le dictionnaire de données
- 22. Quelle base de données que je dois utiliser pour mettre en œuvre l'auto-complétion du dictionnaire
- 23. Imprimer BTree par niveau
- 24. Asp.net - Caching vs variable statique pour stocker un dictionnaire
- 25. Meilleur type de données pour stocker des textes formatés dans le dictionnaire ABAP
- 26. Comment traverser un Btree?
- 27. Stocker des données efficacement
- 28. Comment stocker un gros dictionnaire?
- 29. Logiciel pour stocker des données hiérarchiques
- 30. Que utiliser pour stocker les données sérialisées pouvant être interrogées?
Voici une autre astuce: En utilisant les valeurs Ascii des lettres de l'alphabet, trouver une formule de hachage qui maintient le alphabetization des mots dans le dictionnaire, tout en utilisant les 3 premières lettres de chaque mot. –