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

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

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

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

Сложные структуры данныи 550 р«е -х «еех«-х аписа,«п«««-х« --п»1Р— — -. ф.— --«.'«Р- — -и ~ф---~ р«с«-« х псх«-х — "" — 7~--- е---Ф- л Е' ~1 Г« р«е . х х хпхрх хпмпх«ме«рх! и — ---«ф» — — ъ-~ф -- — -«хф — — + — -л л пел«-л спе«-х В; «« р е«-.«х пех«х пйпх,рпех««/ »1 --~ ~«« — — М~ - — — «~х —.- -«.ф — —.) р:. з и'..'.~ ' ' 1 ! ',. ~ В, В„ В, ле«Ч«~ и пе«п«~е««.х~ х пех»х — '6-. — — — '«~1В- — -'ф — ' Й р«е«.х х пех«-х иИюп(пехпх1 о - — »ф — — ~Ф- -~Я- — —:" ф---~' п«х«х « ~ф-. — л /'~ рпсе.х х ер Я[1 В, В, В Иер В«1 псу~се и- «~ Рис.

19.5. Четыре случая, возможных при выполнении процедуры Впчом[А~ НВАР Ун! ОВ Впчом!Ае НеАР Мекоене более [15п«]+[!бпз1+2 < 2 [1ярх]+2 = О(15«и) корней. Следовательно„время работы процедуры Впчомьи Нелв Мекое составляет О (1к и). Каждая итерация цикла и Ы1е требует О (1) времени, и всего выполняе1- ся не более [15 п11' + [1я пз1' + 2 итераций, поскольку каждая из них в конечном счете приводит к перемещению указателя на одну позицию в списке корней Н или к удалению корня из списка. Отсюда следует, что общее время работы процедуры Впчомы.

НеАР Умом равно О(1йп). Впчом!Ае НБАР 1«чБект(Н, х) 1 Н е — МАКЕ В!ХОМ!АЕ НЕАР() р[х] -хп. 3 сйиЫ[х] — хп. Вставка узла Приведенная далее процедура вставляет узел х в биномиальную пирамиду Н (предполагается, что для х уже выделена память и поле Йер [х] уже заполнено): Глава 19. Биномиальные пирамиды 551 4 вгЫгпд1х) - !ч!Ь 5 !1едгее[х) — О б 7!еай'1Н'~) — х 7 Н + — В!ыОм!А1. НБАР 1!и!01ч(Н, Н ) Процедура просто создает биномиальную пирамиду Н' с одним узлом за время 0(1) и объединяет ее с биномиальной пирамидой Н, содержащей п узлов, за время 0 (1кп).

Вызов В!ыом!и. НеАР Ш~1оы должен освободить память, выделенную для временной биномиальной пирамиды Н'. (Реализация вставки узла без привлечения процедуры В!14ом1Аь НеАР 1)ы!О1ч оставлена читателю в качестве упражнения 19.2-8.) Извлечение вершины с минимальным ключом Приведенная ниже процедура извлекает узел с минимальным ключом из биномиальной пирамиды Н и возвращает указатель на извлеченный узел: В!ыОм!Аь НеАР ЕхткАст М!ы(Н) 1 Поиск корня х с минимальным значением ключа в списке корней Н, и удаление х из списка корней Н 2 Н' 4- Млке Впчом!Аь НеАРО 3 Обращение порядка связанного списка дочерних узлов х, установка поля р каждого дочернего узла равным !чп.

и присвоение указателю аеа<!'1Н'1 адреса заголовка получающегося списка 4 Н < — В11чОм!Ае НБАР П1ч!Оы(Н, Н') 5 гетпгп х Процедура работает так, как показано на рис. 19.6. Исходная биномиальная пирамида Н показана на рис. 19.ба. На рис. 19.6б показана ситуация после выполнения строки 1: корень х с минимальным значением ключа удален из списка корней Н. Если х является корнем Вь-дерева, то, в соответствии со свойством 4 из леммы 19.1, потомками х слева направо являются корни биномиальных деревьев Вь 1, Вь з,..., Во. На рис. 19.6в показано, что, обращая порядок потомков узла х в строке 3, мы получаем биномиальную пирамиду Н', которая содержит все узлы дерева х, за исключением самого х.

Поскольку корень х удален из Н в строке 1, биномиальная пирамида, полученная в результате слияния Н и Н' в строке 4 (показанная на рис. 19.6г), содержит все узлы, которые изначально содержались в Н, кроме узла х. И наконец, в строке 5 процедура возвращает значение х. Поскольку строки 1-4 требуют для выполнения в случае биномиальной пирамиды Н с и узлами время 0 (1к и), время работы процедуры В!ыОм!Аь НБАР ЕхткАст М!и равно 0(1кп). Часть Ч. Сложные структуры данна 552 а) 6еаа)л! — — «е37) — — — е )9)- — — — — — — — — — — — — — «ее)у !еа! ) )263) 6)3) ] 6 ~ [)6 ееф~23) ® Я'(Н~ !27) )26] ® ))3) О)! 7)7) )36) ® )2е7) е .® )')6 )2 ® С 'В 6623,) а26 ЮЗ~ 6Ь и ® )36) '4$ ф 6) зеаа)!д — е )37е) — — — ~юе) ф ®® б ыы )и'! — -«625у — - е (ы2) — — е ()6) — — — — — е еа ЕЕ 4е7'Ее) ЕГИ'а) фл )Щф )36) фф а) ай)И! — е ~37е — — — -3 ')6! )- ~28» )!3 ® е) аеая! Л! — е.® — - — — - )2 — — — — — — — -- — — — — М 6 ~ 37 ® ф- ~6!'))4)® ® ~~в' ~АЗ © фф ),'36е) ~~~~)23 ® )42) Рис.

19.6. Работа процедуры В)НОМЫ. НЕАР ЕХТКАСТ МЛ4 Уменьшение ключа Впе)ОМ!А1. НЕАР ПЕСКЕАБЕ КЕУ(Н, х> Й) 1 и Й > Йеу[х] 2 1Ьеп еттог "Новый ключ больше текущего" 3 Йеу[х] — Й 4 уе — х 5 г +- р[у] 6 ие1611е я ф )4! и Йеу[у] < Йеу[я] 7 оо Обменять Йеу[у] е Йеу[я] Приведенная далее процедура уменьшает значение ключа узла х в биномяальной пирамиде Н, присваивая ему новое значение Й. В случае, если значение Й превышает текущий ключ х, процедура сообщает об ошибке. Глава 19. Биномиальные пирамиды 553 94~8 и маи 101 — ь®вЂ” ~~~ 6)~ ~Р .ВФФ веа~йй ФФ Рис.

19.7. Работа процедуры ВйчОМ!ль НеАР Вескелзе Кеу с Если у и г содержат сопутствующую 1> информацию, обменять также и ее у+ г г — р[у[ 8 9 10 11 Как показано на рис. 19.7, данная процедура уменьшает значение ключа так же, как и в бинарной неубывающей пирамиде — путем "всплывания" ключа в пирамиде. После того, как мы убедимся, что новый ключ не превышает текущий, и присвоим его х, процедура идет вверх по дереву. Изначально значение у равно х.

В кюкдой итерации цикла иййе в строках 6-10 значение кеу[у[ сравнивается со значением ключа родительского по отношению к у узла г. Если у является корнем или йеу [у[ > /сеу [г[, бнномиальное дерево является упорядоченным в соответствии со свойством неубывающей пирамиды. В противном случае узел у нарушает свойство неубывающей пирамиды и происходит обмен ключами и сопутствующими данными между узлами у и г, после чего процедура присваивает переменной у значение г и в очередной итерации переходит на един уровень вверх. Часть Ч.

Сложные структуры данньп 554 Процедура В!ыом!А1 НеА1' 13ескеАзе Кеу выполняется за время 0(18п), В соответствии со свойством 2 леммы 19.1, максимальная глубина х равна 118 и), так что цикл зтЬ11е в строках 6-10 выполняется не более (18 п3' раз. Удаление ключа Удаление ключа х и сопутствующей информации из биномиальной пирамиды Н легко выполняется за время 0(18п). В приведенной ниже реализации этой операции предполагается, что ни один узел в биномиальной пирамиде не имеет ключ со значением -оо.

ВпчОм!Ас НБАР Пеняете(Н, х) 1 ВечОм1АЕ НеАР 1уескеАБе Кеу(Н, х, — оо) 2 В!мОм1АС НеАР ЕхткАст Меч(Н) Процедура Вечом1АС НеАР ПескеАзе Кеу делает узел х единственным узлом с минимальным ключом в биномиальной пирамиде, равным — со (в упражнении 19.2-6 рассматривается ситуация, когда — со не может использоваться в качестве ключа даже временно).

Затем этот ключ и связанные с ним сопутствующие данные "всплывают" в биномиальной пирамиде до корня в процедуре В!ком!Ай НеАР ь!ескеАБе Кеу, после чего этот корень удаляется из дерева вызовом процедуры ВПЧОМ!Аь НЕАР ЕХТКАСТ МПЧ. Время работы процедуры Вечом1АЕ Нелв Пи.ете равно 0 (1к и). Упражнения 19.2-1. Напишите псевдокод процедуры Впчомы. НеАР Мекое. 19.2-2. Покажите, какая биномиальная пирамида получится в результате вставки узла с ключом 24 в биномиальную пирамиду, показанную на рис.

19.6а 19.2-3. Покажите, какая биномиальная пирамида получится в результате удаления узла с ключом 28 из биномиальной пирамиды, показанной на рис. 19.7в. 19.2-4. Докажите корректность процедуры Впчом!м, НеАР Шпон при помощи следующего инварианта цикла. В начале каждой итерации цикла ттЬ11е в строках 9-21 х указывает на корень, который представляет собой: ° либо единственный корень с данной степенью; ° либо первый из всего двух корней данной степени; ° либо первый или второй из всего трех корней данной степени. Глава 19. Бнномнальные пирамиды 555 Кроме того, все корни, являющиеся предшественниками предшественника х в списке корней, единственные со своими степенями в списке корней, и если предшественник х имеет степень, отличную от степени х, то эта степень также единственна в списке корней. И, наконец, степени узлов монотонно увеличиваются в процессе прохода по списку корней. Предположим, что нет никакой возможности представления ключа со значением — оо.

Перепишите процедуру В!ыом1Аь НеАР 13еьете так, чтобы она корректно работала в указанной ситуации. Время работы про- цедуры должно составлять О (18 и). 19.2-6. Рассмотрите взаимосвязь между вставкой в биномиальную пирамиду и увеличением представляющего ее двоичного числа, а также между сли- янием двух биномиальных пирамид и суммированием двух двоичных чисел. 19.2-7. 19.2-8. С учетом результатов упражнения 19.2-7, перепишите процедуру В1ыом1Аь НеАР 1хзект таким образом, чтобы для вставки узла в бииомиальную пирамиду не требовался вызов В!ном!АЕ НеАР 1)ы10х. Покажите, что если список корней поддерживается в строго убывающем порядке по степеням (вместо строго возрастающего порядка), то все опе- рации с биномиальными пирамидами можно реализовать без изменения их асимптотического времени работы. 19.2-9.

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

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

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