Сегмент - это просто место быстрого доступа (например, индекс массива), являющееся результатом хеш-функции.
Идея хеширования состоит в том, чтобы преобразовать сложное входное значение в другое значение, которое можно использовать для быстрого извлечения или хранения данных.
Рассмотрим следующую хеш-функцию для отображения имен людей в уличные адреса.
Сначала возьмите инициалы из имени и фамилии и превратите их в числовые значения (от 0 до 25, от «A» до «Z»). Умножьте первое на 26 и добавьте второе, и это даст вам значение от 0
до 675
(26 * 26
различных значений или идентификаторов сегментов). Этот идентификатор корзины затем используется для хранения или извлечения информации.
Теперь вы можете иметь совершенный хэш (где каждое допустимое входное значение отображается на отличный идентификатор корзины), так что для блоков будет достаточно простого массива. В этом случае вы можете просто сохранить массив из 676 уличных адресов и использовать идентификатор корзины, чтобы найти нужный:
+-------------------+
| George Washington | -> hash(GW)
+-------------------+ |
+-> GwBucket[George's address]
+-------------------+
| Abraham Lincoln | -> hash(AL)
+-------------------+ |
+-> AlBucket[Abe's address]
Однако это означает, что Джордж Вендт и Аллан Лангер будут вызывать проблемы в будущем.
Или у вас может быть несовершенный хеш (например, такой, где Джон Смит и Джейн Сеймур получат одинаковый идентификатор корзины).
В этом случае вам нужна более сложная структура данных поддержки, чем простой массив, чтобы поддерживать набор адресов. Это может быть как простой список, так и сложный другой хеш:
+------------+ +--------------+
| John Smith | | Jane Seymour |
+------------+ +--------------+
| |
V V
hash(JS) hash(JS)
| |
+-----> JsBucket <----+
\/
+-----------------------------------+
| "John Smith -> [John's address] |
| "Jane Seymour -> [Jane's address] |
+-----------------------------------+
Затем, наряду с начальным поиском по хешу, необходимо выполнить дополнительный уровень поиска внутри самого блока, чтобы найти конкретную информацию.