Phil Bagwell, dans son 2002 paper on the VList data structure, indique que vous pouvez utiliser une VList pour implémenter une table de hachage persistante. Cependant, son explication de la façon dont cela fonctionnait n'incluait pas beaucoup de détails, et je ne le comprends pas. Quelqu'un peut-il me donner une explication plus détaillée, ou même des exemples? En outre, il me semble d'après ce que je peux voir que cette structure de données, bien qu'elle puisse avoir la même complexité big-O qu'une Hashtable, sera plus lente car elle fait des recherches supplémentaires. Est-ce que quelqu'un se soucie de faire une analyse détaillée de combien plus lent, de préférence en incluant le comportement du cache? Comment la relation de performance entre les deux change-t-elle dans le cas où il n'y a pas de collisions ou beaucoup?Tables de hachage utilisant VListes
Répondre
J'ai regardé ce papier, et il apparaît très préliminaire. Le fait qu'aucune version ultérieure n'ait été publiée, et que l'original est apparu dans IFL (qui est une sorte de réunion de travail en cours), suggère que vous pourriez perdre votre temps.
Hrmm il semble y avoir un certain nombre de problèmes avec les structures de données proposées par le document en question. En dehors de la manchette, les listes de lecture naïves mentionnées en premier semblent avoir besoin de références uniques pour obtenir quelque chose de proche des garanties de temps proposées. Vous perdez la plupart du temps à partager vos queues. Vous pouvez partager les minuscules noeuds vers l'arrière de la liste, mais vous devrez dupliquer le plus grand noeud vlist au moment où vous contrez quelque chose sur le cdr de vlist qui est toujours actif. Ce coût est proportionnel au coût de la copie de toute la liste.
Avec les modifications 2d mentionnées plus loin, cela redevient constant, mais c'est une constante assez grande, puisque vous finissez par copier au moins la tête d'une liste de pages (ou pire, une vlist) et la première page de votre liste .
Les trucs de la liste de hachage fonctionnelle là-bas ne semblaient pas avoir beaucoup de sens pour moi d'être honnête. C'était juste une brève lettre de présentation qui semblait être boulonnée sur un papier sans rapport avec le sujet, sans suffisamment de détails pour vraiment faire ressortir à quel point c'est pratique.
- 1. php XML et tables de hachage/associées
- 2. Listes liées ou tables de hachage?
- 3. Dictionnaires et tables de hachage dans MS-Access 2007
- 4. Algorithme de hachage
- 5. C# - analyse des données au format json dans des tables de hachage imbriquées
- 6. Fonction de hachage procédural
- 7. MS demande d'accès en utilisant plusieurs tables
- 8. en utilisant JSTL pour construire des tables
- 9. Comment sélectionner plusieurs tables en utilisant mysql?
- 10. MISE A JOUR utilisant deux tables, Concaténation
- 11. Comment trier pas simple hachage (hachage de hachages)
- 12. Correspondance des tables MySQL en utilisant Perl
- 13. L'algorithme de hachage utilisé pour le hachage des mots de passe affecte-t-il la génération des tables arc-en-ciel?
- 14. Exemples de collisions de hachage?
- 15. Voir le hachage d'assemblage
- 16. une création de hachage de ligne Ruby
- 17. Tableau de hachage tableau 5D
- 18. Créer Tinyurl style de hachage
- 19. Hachage de vecteurs binaires clairsemés
- 20. Algorithme de hachage pour les dates
- 21. en utilisant la valeur de hachage dans la galerie de photos
- 22. SHA256 hachage en Python 2.4
- 23. hachage MD5 Décrypter
- 24. hachage comme argument def
- 25. Quelle est la meilleure façon de copier en profondeur un hachage de hachage en Perl?
- 26. Trouver le mode d'un tableau de nombres à virgule flottante en utilisant le hachage
- 27. Salage et hachage des mots de passe en utilisant Linq To SQL
- 28. MySQL: comment obtenir la liste des tables en utilisant ODBC
- 29. Comment revenir à zéro en utilisant Count() avec plusieurs tables
- 30. MySQL supprimer plusieurs tables en utilisant ON ne fonctionne pas
La balise jon-harrop est unique à cette question. Vous voulez l'expliquer? –
Googling "Jon Harrop" ne montre rien de pertinent, donc je l'ai mis en note pour mieux classer la question. –
http://en.wikipedia.org/wiki/VList – Dario