Avec les méthodes conventionnelles de résolution des collisions comme le chaînage séparé et le palpage linéaire / quadratique, la séquence de palpage pour une clé peut être arbitrairement longue - elle est simplement maintenue courte avec une probabilité élevée en gardant le facteur de charge de la table bas. Les collisions lors du remaillage ne sont donc pas un problème car elles n'affectent pas le facteur de charge.
Cependant, avec le hachage de coucou (et d'autres méthodes offrant le pire temps de recherche O (1)?), Un redimensionnement doit se produire lorsque la séquence de sonde d'une clé devient trop longue. Mais lorsque les clés sont mélangées pendant le remaniement, il se peut qu'elles créent une séquence de sonde trop longue pour une clé, nécessitant un autre redimensionnement - éventuellement plusieurs, si cela se produit plusieurs fois de suite. La probabilité est faible, surtout avec une bonne fonction de hachage, mais je l'ai vu se produire.
Existe-t-il un moyen - à moins de générer explicitement une fonction de hachage parfaite pendant le rehash - de garantir que les redimensionnements ne peuvent pas se dérouler en cascade de cette manière? Peut-être spécifique à un schéma de résolution de collision donné? La littérature que j'ai rencontrée jusqu'ici semble occulter entièrement la question. Gardez à l'esprit que je souhaite également réduire les tables de hachage, pas seulement les agrandir.
la source