Я провел небольшое исследование по хеш-таблицам, и я продолжаю сталкиваться с эмпирическим правилом, согласно которому при наличии определенного количества записей (макс. Или через коэффициент загрузки, например, 75%) хеш-таблицу следует расширить .
Практически всегда рекомендуется удваивать (или удваивать плюс 1, то есть 2n + 1) размер хеш-таблицы. Однако мне не удалось найти вескую причину для этого.
Зачем удваивать размер, а не, скажем, увеличивать его на 25% или увеличивать до размера следующего простого числа или следующих k простых чисел (например, трех)?
Я уже знаю, что часто хорошей идеей является выбор начального размера хеш-таблицы, который является простым числом, по крайней мере, если ваша хеш-функция использует модуль, такой как универсальное хеширование. И я знаю, что поэтому обычно рекомендуется делать 2n + 1 вместо 2n (например, http://www.concentric.net/~Ttwang/tech/hashsize.htm)
Однако, как я уже сказал, я не видел реального объяснения того, почему удвоение или удвоение плюс один на самом деле является хорошим выбором, а не каким-либо другим методом выбора размера для новой хеш-таблицы.
(И да, я читал статью в Википедии о хэш-таблицах :) http://en.wikipedia.org/wiki/Hash_table