Je recherche une structure de données économe en espace qui contient des ensembles (sans répétition) d'éléments de taille de mots et prend en charge l'insertion rapide (O amorti (1)). Par "économe en espace", je veux dire, idéalement, mots pour stocker éléments.
Être un ensemble est une partie importante de la question: si chaque élément est ajouté fois l'espace utilisé ne peut pas être .
La structure doit également prendre en charge la liste de ses éléments (raisonnablement efficacement); toute structure saine ne devrait avoir aucun problème ici. (Les demandes d'adhésion rapides sont un plus.)
ds.data-structures
Charles
la source
la source
Réponses:
Je pense que les "dictionnaires et arbres dynamiques succincts" de Raman et Rao respectent les limites que vous spécifiez. Du résumé:
la source
Si votre application peut tolérer certains faux positifs, vous devriez envisager d'utiliser un filtre Bloom .
Paraphrase de Wikipedia: Un filtre Bloom est une structure de données probabiliste économe en espace qui est utilisée pour tester si un élément est membre d'un ensemble. Les faux positifs sont possibles, mais les faux négatifs ne le sont pas. Des éléments peuvent être ajoutés à l'ensemble, mais pas supprimés. Plus il y a d'éléments ajoutés à l'ensemble, plus la probabilité de faux positifs est grande.
la source