[Tables de hachage ont] O (1) insertion et recherche
Je pense que cela est faux.
Tout d'abord, si vous limitez la keyspace être finie, vous pouvez stocker les éléments d'un tableau et faire une O (1) de balayage linéaire. Ou vous pourriez shufflesort le tableau puis effectuez un balayage linéaire en O (1) heure prévue. Lorsque des choses est finie, substance est facilement O (1).
Alors que votre table de hachage stocke une chaîne de bits arbitraire; il n'a pas grande importance, tant qu'il ya un jeu de clés infini, dont chacun est fini. Ensuite, vous devez lire tous les bits d'une entrée de requête et d'insertion, sinon j'insérer y0 dans un hachage vide et requête sur y1, où y0 et y1 diffèrent à une seule position de bit que vous ne regardez pas.
Mais disons que les longueurs de clé ne sont pas un paramètre. Si votre insertion et de recherche prendre O (1), le hash particulier prend O (1) le temps, ce qui signifie que vous ne regardez une quantité finie de sortie de la fonction de hachage ( à partir de laquelle il est susceptible d' être une seule sortie finie, accordée ).
Cela signifie que, avec des seaux finiment beaucoup, il doit y avoir un ensemble infini de chaînes qui ont tous la même valeur de hachage. Supposons que j'insérer beaucoup, par exemple ω (1), de ceux-ci, et commencer à interroger. Cela signifie que votre table de hachage doit se rabattre sur un autre mécanisme d'insertion / de recherche O (1) pour répondre à mes questions. Lequel et pourquoi ne pas simplement l'utiliser directement?