Pourquoi l'accès à un élément d'un dictionnaire par la touche O(1) même si la fonction de hachage peut ne pas être en O(1)?

Je vois comment vous pouvez accéder à votre collection par clé. Cependant, la fonction de hachage lui-même a beaucoup d'opérations derrière les coulisses, n'est-ce pas?

En supposant que vous avez une bonne fonction de hachage qui est très efficace, il peut prendre de nombreuses opérations.

Cela peut-il être expliqué?

  • O la notation est sur la mesure de la the growth de la complexité avec des entrées différentes. Ce n'est pas le nombre d'opérations que vous avez. Par exemple: avec 1 de la valeur, vous avez x secondes, avec n valeurs, vous devez roughly x*n secondes => O (n). x pourrait être de nombreuses opérations combinées.
  • Structures de données n'ont pas O la notation de la complexité, des opérations sur eux.
  • Donc, l'opération nous en parler?
  • Il explique certains faits au sujet de O(1) complexités sur dictionnaire, peut-être liée à un meilleur mot.
  • OP clairement dit que l'accès par clé est que l'opération en question.
  • Pour l'enregistrement, il n'est pas que de nombreuses instructions, soit. Les processeurs Intel ont le matériel des instructions pour le faire SHA hachages, donc une recherche dans le dictionnaire pourrait être fait en seulement quelques instructions de montage.
  • Je pense que cette question n'est pas un doublon, car il se concentre sur le hachage ffunction pas être const temps.
  • "beaucoup d'opérations" et O(1) sont parfaitement compatibles - O(1) ou à temps constant signifie que, comme le nombre d'éléments de l'approche de l'infini, il existe une certaine constante qui délimite le temps d'exécution. Cette constante peut être arbitraire grande à l'aide d'une fonction de hachage qui est garantie dans un délai d'un an ne serait pas empêcher le système de O(1).
  • Pensez à un hachage de recherche en une seule opération.
  • Double Possible de Pouvez les tables de hachage vraiment être O(1)?

InformationsquelleAutor monogate | 2016-05-20