Согласно this, временная сложность поиска в хеш-таблице равна O (1).Как данные извлекаются из HashTable при столкновении?
Однако, если есть столкновение, то, очевидно, это должно быть O (1) + нечто.
Мой вопрос:
Когда вы говорите
get(someKey)
из хеш-таблицы, функция хэширования применяется к someKey, и данные непосредственно извлекаются из этого места.
Но представьте себе Seperate Chaining используется для разрешения конфликтов. И представьте, что у некоторыхKey и someOtherKey есть такой же результат после того, как наша хеширующая функция применяется к ним. Скажите, что это значение «25».
Так что, когда я говорю
get(someKey)
я буду получать данные от местонахождения "25". Что делает его O (1). Отлично.
Однако, когда я говорю
get(someOtherKey)
Теперь someOtherKey связана где someKey есть.
Когда хэширования применяется на someOtherKey я получаю 25.
Как получить значение я reqiure? Что такое внутренние? Есть ли еще таблица? Как работает алгоритм? Есть ли еще таблица для хранения всех столкновений?
спасибо. Надеюсь, мой вопрос ясен!
Вот очень хороший ресурс по этому вопросу: http://www.youtube.com/watch?v=UPo-M8bzRrc&list=EC4BBB74C7D2A1049C&index=21 –