КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Расстановка ключей
Хеширование Таблицы Таблица – это структура данных, в которой каждому элементу соответствует определенное имя. Каждый элемент таблицы обычно представляется записью, которая содержит ряд информационных полей. Одно или несколько полей играют особую роль и используются при поиске элемента. Их называют ключами записи. Ключ – обычно целое положительное число. Элементы добавляются в таблицу и выбираются из таблицы по ключам. Операции над таблицами: 1. поиск записи с заданным ключом, 2. включение в таблицу записи с заданным ключом (если есть запись с заданным ключом в таблице, то это означает замену старой записи на новую), 3. исключение записи с заданным ключом.
Хешированием называется процесс выделения элемента индексного массива непосредственно по информации, которая содержится в массиве. Идея хеш-реализации состоит в сведении работы с одним большим множеством к работе с массивом небольших множеств. Для построения хеш-таблицы (перемешанной или рандомизированной) с N входами выбирается функция отображения, преобразующая ключ К в число k из диапазона от 0 до N-1. Идеальная функция отображения преобразовала бы все встречающиеся ключи в различные числа. Элемент с ключом К помещается в К-ую позицию таблицы. Для поиска элемента применяется та же функция отображения и ищется К-ый элемент таблицы. Если таблица содержит М элементов, ее размер выбирается равным N=1,5*М. Такое решение дает разумный компромисс между размером таблицы и средней длиной поиска. Функция отображения М(К) выбирается так, чтобы любое число из диапазона от 0 до N-1вырабатывалась бы с приблизительно равной вероятностью для заданного или же возможного набора ключей. Простой способ достижения этой цели заключается в том, что в качестве значения хеш-функции берется остаток от деления на N значения ключа, рассматриваемое как двоичное число. При заполнении таблицы возникают коллизии – ситуации, когда для двух неодинаковых ключей функция вычисляет один и тот же адрес.
Рис. 20. Методы разрешения коллизий
Рассмотрим линейное апробирование с шагом 1. Линейное апробирование сводится к последовательному перебору элементов таблицы с некоторым фиксированным шагом. Рассмотрим метод на примере гипотетического ассемблера. Пусть: 1. имена идентификаторов состоят из двух знаков, первый – буква, второй – десятичная цифра; 2. количество идентификаторов равно 7: А3, В5, С1, С4, D4, D9, X3; следовательно, хеш-таблица имеет 1,5*7=10 входов; 3. позицию ключа в таблице дает функция отображения K=Kd=M(K), где Kd – десятичная цифра идентификатора.
При линейном поиске необходимы были бы в среднем 4 пробы, а при двоичном – 2,9 пробы. Анализ линейного апробирования: Е = (1- а /2) / (1- а)
Дата добавления: 2014-01-20; Просмотров: 407; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |