Хеш-таблицы хранят ключ и значение в самой хеш-таблице.Таким образом, позже во время таких операций, как поиск в хеш-таблице, можно гарантировать, что найденное значение соответствует индексу, используемому для поиска.Хеш-таблицы используют простую методологию «попробуй основной метод поиска до успеха».В этом случае методом поиска является «использовать хэш-функцию X», где X изменяется при сбое.
В других схемах методом поиска является «просмотр записи таблицы X» (какопределяется хэш-функцией) где X просто увеличивается на единицу при каждом сбое.
Теперь возникает вопрос: что происходит, когда значение ISN'T в таблице?Что ж, это может быть довольно уродливо: когда вы либо нажали на запись в таблице, которая отсутствует, или, что еще хуже, когда вы перебрали столько записей, сколько хранится в таблице, вы можете быть уверены, что запись ненет, но в худшем случае это может занять некоторое время.
Имейте в виду, что, поскольку с одним ключом может быть связано только одно значение, после того, как вы нашли ключ, вынашел значение.Худшее, что может сделать хеш-таблица, - это выполнить эквивалент недешевного кэширования линейного поиска по всем значениям в самой хеш-таблице ... но, в конечном счете, оно найдет значение, если оно там, потому что оно сравнивает хранимый ключ сзапрошенный ключ, чтобы проверить, есть ли он там.Единственная оптимизация, которую делают закрытые хеш-таблицы, - это где искать сначала - в этом случае, где хеш-функция говорит 1, а затем 2, а затем 3 ...