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
?
Réponse
Trop de publicités?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 .