Почему мы говорим, что поиск строки в хеш-таблице требует O(1)?C++

Программы на C++. Форум разработчиков
Anonymous
 Почему мы говорим, что поиск строки в хеш-таблице требует O(1)?

Сообщение Anonymous »

  • допустим, длина строки равна L. Когда мы вставляем это в хеш-таблицу (скажем, мы используем раздельную цепочку), в первую очередь вычисляется хэш строки. Как происходит вставка в хеш-таблицу O(1), разве она не должна быть O(L), поскольку время вычисления хэша строки увеличивается с размером строки?
  • после вычисления хеша строка сохраняется в хеш-таблице. Разве это копирование не займет O(L)?
  • когда строка просматривается в хеш-таблице, как может ли это быть постоянная операция? Потому что снова вычисляется хеш для строки, а затем в вычисленном сегменте сравнивается строка, которая в худшем случае также должна быть O(L).
Пожалуйста, может кто-нибудь объяснить это? Что мне не хватает?
Я пробовал задавать вопросы в ChatGPT, а также искал решения на сайтах, но они были противоречивыми. В ChatGPT указано, что это будет O(L), но на некоторых веб-сайтах указано, что это будет O(1).

Подробнее здесь: https://stackoverflow.com/questions/790 ... able-is-o1

Вернуться в «C++»