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

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

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

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

2«) «'Е: 2.)~ 6 «т7 5 26: 5) ~~'.:25 2 «'~',73 ) ««5 ;В 2; а~26 Р~ ,;„Ь ~-Ф 6К: 6«) с,— 6«693 с., ' г«- ««': 25 5 .')'::Й а! ' С.с: 6 «"Й5) Ф «1: 25,3 ®2.".'3 6К.ф Д Глава 13. Красно-черные деревья 363 Ь ) ~ л й Рнс. 13.11. Хребты в бинарных деревьях поиска (а — левый хребет, б — правый) хребта левого поддерева х, а Р— длина левого хребта правого поддерева х. Докажите, что общее количество поворотов, которые были выполнены в процессе вставки х, равно С+ Р. Теперь мы вычислим математическое ожидание значений С и Р. Без потери общности будем считать, что ключи представляют собой натуральные числа 1, 2, ..., и, поскольку мы сравниваем их толью друг с другом.

Пусть для узлов х и у (х ф у) !с = йеу [х] и 1 = !сеу [у]. Определим индикаторную случайную величину Х; ь = 1 (у находится в правом хребте левого поддерева х) . е) Покажите, что Х, ь = 1 тогда и только тогда, когда ртгот1гу[у] > > ртютзсу [х], !сеу [у] < Иеу [х] и для каждого а такого, что Йеу [у] < < Йеу [а] < Йеу [х], имеем ртзот!1у [у] < ртъотз1у [а]. ж) Покажите, что (!с — 1 — 1)! 1 Рг1Х;а = 1)— (/с — 1+ 1)! (!с — 1+ 1) (й — 1) ' з) Покажите„что ь-1 Е [С] = ~~~,, = 1 — —.

з Ц+ 1) !с и) Используя симметрию, покажите, что Е[Р]=1— 1 и — !с+ 1 Часть 111. Структуры данных к) Сделайте вывод о том, что математическое ожидание количества поворотов, выполняемых при вставке узла в дерамиду, меньше 2. Заключительные замечания Идея балансировки деревьев поиска принадлежит советским математикам ГМ. Адельсону-Вельскому и Е.М.

Ландису [2), предложившим в 1962 году класс сбалансированных деревьев поиска, получивших название Ат'!.-деревьев (описанных в задаче 13-3). Еще один класс деревьев поиска, называемых 2-3-деревьями, был предложен Хопкрофтом (ЕЕ. Норсгой, не опубликовано) в 1970 году. Баланс этих деревьев поддерживается при помощи изменения степеней ветвления в узлах. Обобщение 2-3-деревьев, предложенное Байером (Вауег) и Мак-Крейтом (МсСге18Ь!) [32) под названием В-деревьев, рассматривается в главе 18. Красно-черные деревья предложены Байером (31) под названием "симметричные бинарные В-деревья*'. Гибас (ОшЬаз) и Седжвик (Яебйеичск) [135) детально изучили их свойства и предложили использовать концепцию цветов.

Андерсон (Апдегзоп) (15) предложил вариант красно-черных деревьев, обладающих повышенной простотой кодирования (который был назван Вейссом (9Уе(зз) (311) АА- деревьями). Этн деревья подобны красно-черным деревьям с тем отличием, что левый потомок в них не может быть красным. Дерамиды были предложены Сиделем (81ес1е1) и Арагоном (Агайоп) [27!). Они представляют собой реализацию словаря по умолчанию в ЕЕРА, тщательно разработанном наборе структур данных и алгоритмов. Имеется множество других вариантов сбалансированных бинарных деревьев, включая взвешенно-сбалансированные деревья [230), деревья с !г соседями [213], т.н.

"деревья-козлы отпущения" (зсарейоа1 !геев) (108) и другие. Возможно, наиболее интересны "косые'* деревья (зр!ау !геев), разработанные Слитором (81еагог) и Таржаном (Тат)ап) (282), обладающие свойством саморегуляции (хорошее описание косых деревьев можно найти в работе Таржана [292)). Косые деревья поддерживают сбалансированность без использования дополнительных условий балансировки типа цветов. Вместо этого всякий раз при обращении над ним выполняются косые*' операции (включающие, в частности, повороты).

Амортизированная стоимость (см. главу ! 7) таких операций в дереве с и узлами составляет О (1к и). Альтернативой сбалансированным бинарным деревьям поиска являются списки с пропусками (зрйр 11з1) (251), которые представляют собой связанные списки, оснащенные рядом дополнительных указателей. Все словарные операции в таких списках с и элементами имеют математическое ожидание времени выполнения, равное О (18 и). ГЛАВА 14 Расширение структур данных Зачастую на практике возникают ситуации, когда "классических" структур данных — таких как дважды связанные списки, хеш-таблицы или бинарные деревья поиска — оказывается недостаточно для решения поставленных задач. Однако только в крайне редких ситуациях приходится изобретать совершенно новые структуры данных; как правило, достаточно расширить существующую структуру путем сохранения в ней дополнительной информации„что позволяет запрограммировать необходимую для данного приложения функциональность.

Однако такое расширение структур данных — далеко не всегда простая задача, в первую очередь, из-за необходимости обновления и поддержки дополнительной информации стандартными операциями над структурой данных. В этой главе рассматриваются две структуры данных, которые построены путем расширения красно-черных деревьев. В разделе 14.1 описывается структура, которая обеспечивает операции поиска порядковых статистик в динамическом множестве. С ее помощью мы можем быстро найти 1-е по порядку наименьшее число или ранг данного элемента в упорядоченном множестве.

В разделе 14.2 рассматривается общая схема расширения структур данных и доказывается теорема, которая может упростить расширение красно-черных деревьев. В разделе 14.3 эта теорема используется при разработке структуры данных, поддерживающей динамическое множество промежутков, например, промежутков времени. Такая структура позволяет быстро находить в множестве промежуток, перекрывающийся с данным. Часть 111. Структуры данных Збб 14.1 Динамические порядковые статистики В главе 9 было введено понятие порядковой статистики. В частности, г-й порядковой статистикой множества из п элементов (г Е !1,2,...,и)) является элемент множества с г-м в порядке возрастания ключом. Мы знаем, что любая порядковая статистика может быть найдена в неупорядоченном множестве за время О (и).

В этом разделе вы увидите, каким образом можно изменить красно-черные деревья для того, чтобы находить порядковую статистику за время О (!кп). Вы также узнаете, каким образом можно находить ранг элемента — его порядковый номер в линейно упорядоченном множестве — за то же время О (1б п).

На рис. 14.1 показана структура данных, которая поддерживает быстрые операции порядковой статистики. Дерево порядковой статистики Т (оп)ег-з!аг1з!1с пес) представляет собой просто красно-черное дерево с дополнительной информацией, хранящейся в каждом узле. Помимо обычных полей узлов красно-черного дерева Иеу [х], со1ог [х], р (х], 1еГг [х] и пдлг [х], в каждом узле дерева порядковой статистики имеется поле а1зе [х], которое содержит количество внутренних) узлов в поддереве с корневым узлом х (включая сам х), т.е. размер поддерева. Если мы определим размер ограничителя как О, т.е.

згяе [ги! [Т]] = О, то получим тождество аьае [х] = з1зе [1е~г [х]] + а!ае [г!961 [х]] + 1. В дереве порядковой статистики условие различности всех ключей не ставится. Например, на рис. 14.1 имеются два ключа со значением 14, и два— с значением 21. В случае наличия одинаковых ключей определение ранга оказывается нечетким, и мы устраняем неоднозначность дерева порядковой статистики, определяя ранг элемента как позицию, в которой будет выведен данный элемент при центрированном обходе дерева.

Например, на рис. 14.1 ключ 14, хранящийся в черном узле, имеет ранг 5, а в красном — ранг 6. От ~ . -.- 12~-.-.. .Э Л: [,Ж Рис. !4.1. Дерево порядковой статистики, являющееся расширением красно-черного дерева Глава 14. Расширение структур данных 367 Выборка элемента с заданным рангом Перед тем как будет изучен вопрос об обновлении информации о размере поддеревьев в процессе вставки и удаления, давайте посмотрим на реализацию двух запросов порядковой статистики, которые используют дополнительную информацию. Начнем с операции поиска элемента с заданным рангом. Процедура 08 8ЕЕЕст(х, 1) возвращает указатель на узел, содержащий 1-й в порядке возрастания ключ в поддереве, корнем которого является х (так что для поиска 1-го в порядке возрастания ключа в дереве порядковой статистики Т мы вызываем процедуру как 08 8~.ест(тоо1 [Т],1): 08 8ЕЕЕСТ(х, 1) 1 т — а1ае[1е11[х]]+1 2 Ы1=т 3 Феп ге1пгп х 4 енен1 < т 5 1ьеп ге1пгп 08 8еьест(1е71[х],1) 6 е1ае ге1пгп 08 8н.ест(пдй[х],1 — т) Идея, лежащая в основе процедуры 08 8е1.ест, аналогична идее, лежащей в основе алгоритмов, рассматривавшихся в главе 9.

Значение атее [1е11 [х]] представляет собой количество узлов, которые при центрированном обходе дерева с корнем в узле х будут выведены до узла х. Таким образом, акае [1е9 [х]] + 1 представляет собой ранг узла х в поддереве, юрием которого является х. В первой строке псевдокода процедуры 08 8ееест мы вычисляем т — ранг узла х в поддереве, для которого он является корнем. Если 1 = т, то узел х является 1-м в порядке возрастания элементом и мы возвращаем его в строке 3. Если же 1 < т, то 1-й в порядке возрастания элемент находится в левом поддереве, так что мы рекурсивно ищем его в строке 5. Если 1 > т, то исюмый элемент находится в правом поддереве и мы делаем соответствующий рекурсивный вызова в строке 6, с учетом того, что 1-й в порядке возрастания в дереве с корнем х элемент является (1 — т)-м в порядке возрастания в правом поддереве х. Для того чтобы увидеть описанную процедуру в действии, рассмотрим поиск 17-го в порядке возрастания элемента в дереве порядювой статистики на рис.

14.1. Мы начинаем поиск с корневого узла, ключ которого равен 26, и 1 = 17. Поскольку размер левого поддерева элемента с ключом 26 равен 12, ранг самого элемента — 13. Теперь мы знаем, что элемент с рангом 17 является 17 — 13 = 4-м в порядке возрастания элементом в правом поддереве элемента с ключом 26.

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

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

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