9 votes

Quelles sont les performances de ContainsKey et TryGetValue ?

Je prépare des entretiens et certaines questions évidentes, comme le comptage de la fréquence des caractères dans une chaîne, impliquent de placer tous les caractères dans une table de hachage ou un dictionnaire afin d'obtenir un temps d'exécution O(n) pour l'algorithme. Ma question est la suivante : quelle est la perte de performance en utilisant ContainsKey y TryGetValue pour vérifier si une clé a déjà été insérée dans la Hashtable ? Puis-je encore avoir un algorithme O(n) pour des problèmes de ce genre qui utilisent ContainsKey o TryGetValue ?

10voto

Jon Skeet Points 692016

En supposant un bon hachage sans trop de collisions, chacune de ces opérations est de O(1).

Quant au fonctionnement de ces opérations... Je vous suggère de vous documenter sur tables de hachage .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X