Проверка в java и googling онлайн для примеров кода hashtable кажется, что изменение размера таблицы выполняется путем удвоения.
Но большинство учебников говорят, что лучший размер для таблицы - простое число.
Итак, мой вопрос:
Является ли подход удвоения, потому что:
- Легко реализовать, или
- Нахождение простого числа слишком неэффективно (но я считаю, что поиск
следующее простое переключение
n+=2
и тестирование на первичность с использованием modulo - O (loglogN), который является дешевым) - Или это мое недоразумение и только некоторые варианты хеш-таблицы требуется только размер основного стола?
Update:
Для работы определенных свойств требуется способ, представленный в учебниках с использованием простого числа (например, для квадратичного зондирования нужна таблица простого размера, чтобы доказать, что, например, если таблица не заполнена, элемент X будет вставлен).
Ссылка, размещенная как повторяющаяся, обычно спрашивает об увеличении на любое число, например. 25% или следующий премьер, и принятый ответ утверждает, что мы удваиваем, чтобы сохранить операцию изменения размера "редкими", чтобы мы могли гарантировать амортизированное время.
Это не отвечает на вопрос о том, что размер таблицы является простым и с использованием простого для изменения размера, которое даже больше, чем двойное. Поэтому идея состоит в том, чтобы сохранить свойства основного размера с учетом накладных расходов на изменение размера