Есть ли вообще избежать хэш-столкновений в хеш-функции, если мы знаем размер ввода перед построением хеш-таблицы? Другими словами, как мы можем сделать вставку наихудшего случая в O (1) раз?Как избежать хэш-столкновений, когда элементы известны
1
A
ответ
3
То, о чем вы просите, называется perfect hash function. Для этого существует множество известных алгоритмов (см. this article in Dr. Dobbs' по одному из таких алгоритмов). Большинство из них полагаются на некоторую рандомизированную параметризованную схему, которая имеет нетривиальную вероятность не обнаруживать столкновений. Как только такой параметр найден, у вас есть идеальный хеш. См. this lecture для чтения.
Смежные вопросы
- 1. Отражение, когда типы известны
- 2. Улучшение ликвидации наивного Гса, когда нулевые элементы известны
- 3. Получение контактов, когда идентификаторы известны
- 4. оптимизация Canvas, когда изменения пиксельные известны
- 5. Анализ XML, когда имена тегов не известны
- 6. сравнение производительности, когда аргументы предварительно известны?
- 7. Как выполнить бикубическую интерполяцию, когда известны не все соседи?
- 8. Как эффективно выполнять итерацию, когда известны некоторые результаты подсерий
- 9. Как передать указатель функции, когда аргументы еще не известны
- 10. Использование JQuery, как найти элемент, когда имя и значение известны
- 11. Как навести все элементы, но избежать некоторых?
- 12. Работает ли Scrum, когда требования не полностью известны заранее?
- 13. Меню здания, когда узлы не известны в angularJS
- 14. Linq to DataTable (GROUP BY), когда столбцы не известны
- 15. элементов поддокумента проекта, когда имя элемента не известны в Монго
- 16. C динамическое распределение для сетки, когда строки не известны
- 17. Группировка и суммирование, когда возвращаемые столбцы заранее не известны
- 18. имена ключей заранее не известны для eval
- 19. Использование DictWriter для записи CSV, когда поля не известны заранее
- 20. Выбор строки из Numpy ndarray, когда группы известны
- 21. DictReader получить значение, когда столбец # и строка # известны
- 22. В Python, как сделать элементы данных видимыми для подклассов, если они не известны при инициализации объекта?
- 23. Обрезать изображение, если размеры известны
- 24. Разрешить перекрывающиеся элементы и избежать смещения
- 25. Как избежать копирования, когда я вернусь
- 26. `образец` триггеры когда завершено. Как избежать?
- 27. как избежать одинарные кавычки, когда использовать sshpass
- 28. Как избежать блокировки Socket.EndReceive(), когда нет данных
- 29. Как избежать скобок [...] справочного сообщения, когда nargs = '+'?
- 30. Как избежать стартовой активности, когда она называется
Знаете ли вы * размер * ввода или фактические предметы? –
@AmiTavory Скажем, я знаю все о вводе - размер, информацию каждого элемента .... – Zheng