Главная » Просмотр файлов » Т. Кормен, Ч. Лейзерсон, Р. Ривест, К. Штайн - Алгоритмы - Построение и анализ (2 изд.)

Т. Кормен, Ч. Лейзерсон, Р. Ривест, К. Штайн - Алгоритмы - Построение и анализ (2 изд.) (1123758), страница 61

Файл №1123758 Т. Кормен, Ч. Лейзерсон, Р. Ривест, К. Штайн - Алгоритмы - Построение и анализ (2 изд.) (Т. Кормен, Ч. Лейзерсон, Р. Ривест, К. Штайн - Алгоритмы - Построение и анализ (2 изд.)) 61 страницаТ. Кормен, Ч. Лейзерсон, Р. Ривест, К. Штайн - Алгоритмы - Построение и анализ (2 изд.) (1123758) страница 612019-05-10СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 61)

Кроме того, если два ключа имеют одну и то же начальную позицию исследования, то одинаковы и последовательности исследования в целом, так как из Ь1(Ь,О) = Ьг (Ь,О) вьпекает Ь1 (Ь,1) = Ьг ()с,1). Это свойство приводит кболее мягкой вторичной кластеризации. Как и в случае линейного исследования, начальная ячейка определяет всю последовательность, поэтому всего используется т различных последовательностей исследования.

Двойное хеширование Двойное хеширование представляет собой один из наилучших способов использования открытой адресации, поскольку получаемые при этом перестановки обладают многими характеристиками случайно выбираемых перестановок. Двойное хеширование использует хеш-функцию вида Ь ()с,1) = (Ьг (Ь) + 1Ьг (Ь)) пюс1 т, сде Ь1 и Ьг — вспомогательные хеш-функции. Начальное исследование выполняется в позиции Т [Ь| (1с)], а смещение каждой из последующих исследуемых ячеек относительно предыдущей равно Ьг()с) по модулю т.

Следовательно, в отличие отлинейного и квадратичного исследования, в данном случае последовательность исследования зависит от ключа Й по двум параметрам — в плане выбора начальной исследуемой ячейки и расстояния между соседними исследуемыми ячейками, так как оба эти параметра зависят от значения ключа. На рис.

11.5 показан пример вставки при двойном хешировании. Вы видите хеш-таблицу размером 13 ячеек, в которой используются вспомогательные хешфункции Ь1 (/с) = )с пюс1 13 и Ьг (Ь) = 1 + (/спюс1 11).так как 14 :- 1(пюс113) и 14 = 3(пюс111), ключ 14 вставляется в пустую ячейку 9, после того как при исследовании ячеек 1 и 5 выясняется, что эти ячейки заняты. Для того чтобы последовательность исследования могла охватить всю таблицу, значение Ьг (1с) должно быть взаимно простым с размером хеш-таблицы Часть П1.

Структуры данных 304 Рис. 11.5. Вставка при двой- ном хешировании т (см. упражнение 11.4-3). Удобный способ обеспечить выполнение этого условия состоит в выборе числа т, равного степени 2, и разработке хеш-функции Йз таким образом, чтобы она возвращала только нечетные значения. Еще один способ состоит в использовании в качестве т простого числа и построении хешфункции Йз такой, чтобы она всегда возвращала натуральные числа, меньшие т.

Например, можно выбрать простое число в качестве т, а хеш-функции такими: Й1 (Й) = Й пюс1 сп, Йз (х) = 1 + (сс пюс1 т ), где гп' должно быть немного меньше т (например, т — 1). Скажем, если 1с = = 123456, т = 701, а т' = 700, то Й1()с) = 80 и Йз (Й) = 257, так что первой исследуемой будет ячейка в 80-й позиции, а затем будет исследоваться каждая 257-я (по модулю т) ячейка, пока не будет обнаружена пустая ячейка, или пока не окажутся исследованы все ячейки таблицы. Двойное хеширование превосходит линейное или квадратичное исследования в смысле количества 9 (гпз) последовательностей исследований, в то время как у упомянутых методов это количество равно О (гп). Это связано с тем, что каждая возможная пара (Й1 (к), Йз (к)) дает свою, отличающуюся от других последовательность исследований.

В результате производительность двойного хеширования достаточно близка к производительности "идеальной" схемы равномерного хеширования. Глава 11. Хеш-таблицы 305 Анализ хеширования с открытой адресацией Анализ открытой адресации, как и анализ метода цепочек, выполняется с использованием коэффициента заполнения а = и/т хеш-таблицы при п и т, стремящихся к бесконечности. Само собой разумеется, при использовании открытой адресации у нас может быть не более одного элемента на ячейку таблицы, так что п < т и, следовательно, гг < 1.

Будем считать, что используется равномерное хеширование. При такой идеализированной схеме последовательность исследований (й(к, О), Ь(1с, 1),..., й(к, т — 1)), используемая для вставки или поиска каждого ключа 1с, с равной вероятностью является одной из возможных перестановок (О, 1,..., т — 1). Разумеется, с каждым конкретным ключом связана единственная фиксированная последовательность исследований, так что при рассмотрении распределения вероятностей ключей и хеш-функций все последовательности исследований оказываются равновероятными.

Сейчас мы проанализируем математическое ожидание количества исследований для хеширования с открытой адресацией в предположении равномерного хеширования, и начнем с анализа количества исследований в случае неуспешного поиска. Теорема 11.6. Математическое ожидание количества исследований при неуспешном поиске в хеш-таблице с открытой адресацией и коэффициентом заполнения гг = и/гп < 1 в предположении равномерного хеширования не превышает 1/(1 — а). Доказательство. При неуспешном поиске каждая последовательность исследований завершается на пустой ячейке.

Определим случайную величину Х как равную количеству исследований, выполненных при неуспешном поиске, и события А; (1 = 1, 2,... ), заключающиеся в том, что было выполнено г-е исследование, и оно пришлось на занятую ячейку. Тогда событие (Х > г) представляет собой пересечение событий Аз Г1АзП... ОА; ~. Ограничим вероятность Рг (Х > г) путем ограничения вероятности Рг (Аз П Аз П... П А; ~ ). В соответствии с упражнением В.2-6, Рг(А~ ПАг П...г1А г) = Рг(А~) Рг(Аз ! А~) Рг(Аз ) А~ ОАз) .. ... Рг(А, г ~ А~ О Аз П... ПА, з) .

Поскольку всего имеется и элементов и т ячеек, Рг (А~) = п/т. Вероятность того, что будет выполнено у-е исследование (~ > 1) и что оно будет проведено над заполненной ячейкой (при этом первые у — 1 исследований проведены над заполненными ячейками), равна (и — у+ 1)/(гп — у+ 1). Эта вероятность определяется следующим образом: мы должны проверить один из оставшихся Часть 1П. Структуры данных 306 (и — (/ — 1)) элементов, а всего неисследованных к этому времени ячеек остается (гп — (з — 1)).

В соответствии с предположением о равномерном хешировании, вероятность равна отношению этих величин. Воспользовавшись тем фактом, что нз п < т для всех 0 < у < т следует соотношение (и — з)/(т — з) < и/т, для всех 1 < 1 < т мы получаем: и п — 1 п — 2 п — г+2 гп ~~1 Рг(Х >1) = — ° ... (~ ~ — ~ =сз' тл гп — 1 т — 2 т — 1+2 ~т/ Теперь мы можем использовать уравнение (В.24) для того, чтобы ограничить математическое ожидание количества исследований: 00 ОО 00 Е[Х] = ~~) Рг(Х >1) < ,') а' ' = ,') гг' =— з=1 в=! в=о Полученная граница 1+ а + аз + гзз +... имеет интуитивную интерпретацию.

Одно исследование выполняется всегда. С вероятностью, приблизительно равной а, первое исследование проводится над заполненной ячейкой, и требуется выполнение второго исследования. С вероятностью, приблизительно равной сР, две первые ячейки оказываются заполненными и требуется проведение третьего исследования, и т.д. Если а — константа, то теорема 11.6 предсказывает, что неуспешный поиск выполняется за время 0(1). Например, если хеш-таблица заполнена наполовину, то среднее количество исследований при неуспешном поиске не превышает 1/(1 — 0.5) = 2. При заполненности хеш-таблицы на 90% среднее количество исследований не превышает 1/11 — 0.9) = 10.

Теорема 1!.6 практически непосредственно дает нам оценку производительности процедуры НАзн 1нзвкт. Следствие 11.7. Вставка элемента в хеш-таблицу с открытой адресацией и коэффициентом заполнения гг в предположении равномерного хеширования, требует в среднем не более 1/(1 — а) исследований. Доказааельсаво. Элемент может быть вставлен в хеш-таблицу только в том случае, если в ней есть свободное место, так что а < 1. Вставка ключа требует проведения неуспешного поиска, за которым следует размещение ключа в найденной пустой ячейке. Следовательно, математическое ожидание количества исследований не превышает 1/(1 — а).

Вычисление математического ожидания количества исследований при успешном поиске требует немного больше усилий. Глава 11. Хеш-таблицы 307 Теорема 11.8. Математическое ожидание количества исследований прн удачном поиске в хеш-таблице с открытой адресацией и коэффициентом заполнения а < 1, в предположении равномерного хеширования и равновероятного поиска любого из ключей, не превышает 1 1 — 1п —. а 1 — а Доказательство.

Поиск ключа й выполняется с той же последовательностью исследований, что и его вставка. В соответствии со следствием 11.7, если к был (г + 1)-м ключом, вставленным в хеш-таблицу, то математическое ожидание количества проб при поиске )с не превышает 1/ (1 — г/т) = т/(тп — г).

Усреднение по всем п ключам в хеш-таблнце дает нам среднее количество исследований при удачном поиске: — —, =-(н -н„„), 1 т т 1 1 и т — г тт пт — г а 1=О 1=о где Н; = 2 ' т 1/.т' представляет собой г-е гармоническое число (определяемое у= уравнением (А.7)). Воспользовавшись методом ограничения суммы интегралом, описанном в разделе А.2 (неравенство (А.12)), получаем верхнюю границу математического ожидания количества исследований при удачном поиске: 1 1 1 1 — (Н,„— Н,„„) = — ~~~ — ( — (1/х) 0х = а а к а й=т-и+1 т-и 1 т 1 1 = -1и — = -1п —. а тп — п а 1 — а Если хеш-таблица заполнена наполовину, ожидаемое количество исследований при успешном поиске не превышает 1.387; при заполненности на 90% это количество не превышает 2.559. Упражнения 11.4-1. Рассмотрите вставку ключей 1О, 22, 31, 4, 15, 28, 17, 88, 59 в хеш-таблицу длины тп = 11 с открытой адресацией и вспомогательной хешфункцией Ь' (к) = lс шот1 тп.

Проиллюстрируйте результат вставки приведенного списка ключей при использовании линейного исследования, квадратичного исследования с ст = 1 и сз = 3, и двойного хеширования с Ьз (Й) = 1+ (Й шот1 (т — 1)). 1! .4-2. Запишите псевдокод процедуры Нлзн 13н.нте, описанной в тексте, и модифицируйте процедуру Клен 1нзект для обработки специального значения 0ЕЕЕТЕ0 (удален). 308 Часть И1. Структуры данных * 11.4-3. Предположим, что для разрешения коллизий мы используем двойное хеширование, те. хеш-функцию Ь (к, г) = 1Ь1 (и) + гЬз (и)) шоп т. Покажите, что если тп и Ьз (Й) для некоторого ключа /с имеют наибольший общий делитель д > 1, то неуспешный поиск ключа Ь проверяет (1/с~)-ю часть хеш-таблицы до того, как возвращается в ячейку Ь1 (й).

Характеристики

Список файлов книги

Свежие статьи
Популярно сейчас
А знаете ли Вы, что из года в год задания практически не меняются? Математика, преподаваемая в учебных заведениях, никак не менялась минимум 30 лет. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6451
Авторов
на СтудИзбе
305
Средний доход
с одного платного файла
Обучение Подробнее