J'ai des x (millions) entiers positifs, où leurs valeurs peuvent être aussi grandes que permises (+2 147 483 647). En supposant qu'ils sont uniques, quelle est la meilleure façon de les stocker pour un programme intensif de recherche. Jusqu'à présent, j'ai pensé à utiliser une arborescence AVL binaire ou une table de hachage, où l'entier est la clé des données mappées (un nom). Cependant suis pas sûr que je peux mettre en œuvre ces grandes touches et en si grande quantité avec une table de hachage (ne serait-ce créer un> 0,8 facteur de charge en plus d'être sujettes à des collisions?)Choix d'une structure de données pour des données très volumineuses
Puis-je obtenir quelques conseils sur quelle structure de données pourrait convenir à ma situation
Essayez-vous de garder cette structure entière en mémoire? Les bases de données utilisent généralement B-tree pour ce type de recherche. La structure est stockée sur le disque et il suffit d'un petit nombre d'accès pour trouver la clé souhaitée même avec un très grand nombre de clés dans l'index. – JOTN
@JOTN: Les remplissages de lignes de mémoire cache de l'UC peuvent avoir le même effet sur les performances que les lectures de pages de base de données, bien qu'à une échelle de microsecondes plutôt qu'à la milliseconde. –
Si vous allez utiliser un arbre d'auto-équilibrage, alors je vous recommande fortement de lire ce document: http://web.stanford.edu/~blp/papers/libavl.pdf – anilbey