2009-12-02 11 views
2

Dans plusieurs implémentations de table de hachage, j'ai vu l'utilisation d'heuristiques telles que «transposer» ou «aller de l'avant» pour les éléments dans un compartiment.Optimisation des tables de hachage

  1. Quels sont les avantages de l'utilisation de telles heuristiques? Je ne pouvais pas le comprendre moi-même.
  2. Quelles autres optimisations peuvent être effectuées au niveau table de hachage/compartiment, pourquoi et dans quelles circonstances?

Optimiser les fonctions de hachage de côté, s'il vous plaît.

Répondre

4

Si des collisions se produisent et que les compartiments contiennent plusieurs éléments, qui doivent être examinés, il serait pratique que les articles couramment utilisés soient en début de liste. Ces heuristiques ont un sens s'il y a des raisons de supposer qu'un élément récemment accédé est susceptible d'être accédé à nouveau bientôt. Quand on considère quelque chose comme des nouvelles, il est fort probable que l'on accède fréquemment aux dernières nouvelles.

+0

Ceci est également connu sous le nom de * liste auto-optimisante *, dans laquelle les éléments les plus couramment consultés se placent au début de la liste. –

+0

Qu'est-ce que Loadmaster a dit ... Plus: Jetez un coup d'œil à l'arbre à siphon (wiki!) Pour savoir pourquoi il est bon de déplacer les choses vers l'avant en général. –

+0

Correction du lien de blog cassé. J'ai écrit un article sur des discussions détaillées sur le hachage et diverses méthodes de manipulation des collisions. Cela pourrait aider http://techieme.in/hashing-in-detail-part-one – dharam