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

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

Файл №1162189 Т. Кормен, Ч. Лейсерзон, Р. Риверст, К. Штайн - Алгоритмы. Построение и анализ (2013) (Т. Кормен, Ч. Лейсерзон, Р. Риверст, К. Штайн - Алгоритмы. Построение и анализ (2013)) 133 страницаТ. Кормен, Ч. Лейсерзон, Р. Риверст, К. Штайн - Алгоритмы. Построение и анализ (2013) (1162189) страница 1332019-09-19СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

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

Однако, как показывает следующая теорема, последовательность из гп операций МАке-бег, 1)мюм и Р1мо-Яет, п из которых составляют операции МАке-бег, требует для выполнения время 0(пз+ п!яп). Теорема 21.1 При использовании связанных списков для представления непересекающихся множеств и применении весовой эвристики последовательность из пз операций МАке-Яет, 1)мюм и Р1мо-бег, п из которых составляют операции МАке-бег, требует для выполнения время 0(гп + и 1к п).

Доказательство. Поскольку каждая операция ()М10М объединяет два непересекающихся множества, всего выполняется не более и — 1 операции 1)М1ОМ. Теперь вычислим границу для общего времени, требуемого для выполнения этих операций 1)М1ОМ. Начнем с вычисления верхней границы количества обновлений указателей на объект множества для каждого из и элементов. Рассмотрим конкретный объект х. Мы знаем, что всякий раз, когда происходит обновление б03 Глава 2Е Структуры данные для ненересекаюнрлкся тналкеств указателя в объекте х, он должен находиться в меньшем из объединяемых множеств.

Следовательно, юша происходит первое обновление указателя в обьекте х, образованное в результате множество содержит не менее двух элементов. При следующем обновлении указателя на представителя в объекте х полученное после объединения множество содержит не менее четырех членов. Продолжая рассуждения, приходим к выводу о том, что для произвольного Й ( п, после того как указатель в объекте х был обновлен (1я Ц раз, полученное в результате множество должно иметь не менее й элементов. Поскольку максимальное множество может иметь толью и элементов, во всех операциях 11Х10Х указатель каждого объекта может быть обновлен не более (16 п1 раз.

Мы должны также учесть обновления указателей Гай и длин списков, для выполнения которых при каждой операции ПХюХ требуется Сэ(1) времени. Таким образом, общее время, необходимое для обновления и объектов, составляет 0(п 1к и). Отсюда легко выводится время, необходимое для всей последовательности нз т операций. Каждая операция МАке-Яет и ргхо-Яет занимает время 0(1), а всего их — 0(т). Таким образом, полное время выполнения всей последовательности операций — О(т + п 1к и).

Упражнения 21.2.1 Напишите псевдокод процедур МАке-Яет, Р1хо-Яет и Пхюх с использованием связанных списков и весовой эвристики. Не забудьте указать атрибуты, которые должны быть у объектов множеств и объектов списков. 21.2.2 Покажите, какая образуется структура данных и какие ответы дают операции Ргхо-Яет в следующей программе. Используются представление с помощью связанных списков и весовая эвристика. 1 уоге = 11о16 2 МАке-Яет(х;) 3 1ог 1 = 1 го 16 Ьу 2 4 ПХЮХ(х;, х,+~) 5 1ог 1 = 1 Го 13 Ьу 4 б ПХ1ОХ(хс, х,+г) 7 13х!ох(хо хз) 8 Пхюх(хы, х1з) 9 11хюх(хм х10) 16 Ело-Яет(хг) р[ХО-ЯЕТ(хд) Считаем, что если множества, содержащие х; и х,, имеют один и тот же размер, то операция ПХЮХ(х,, х ) присоединяет список х, к списку х,.

Часто и Сложные структуры данньи 604 21.2.5 Адаптируйте доказательство теоремы 21.1 для получения границ амортизированного времени выполнения процедур Млке-Яет и г1мп-Зет, равного 0(1), и амортизированного времени выполнения процедуры Бм1ом, равного 0(1яп), при использовании связанных списков и весовой эвристики. 21.2.4 Найдите точную асимптотическую границу времени работы последовательности операций на рис. 21.3 в предположении использования связанных списков и весовой эвристики. 21.2.5 Профессор подозревает, что в каждом объекте множества можно поддерживать только один указатель вместо двух (леал и 1ал(), в то время как в каждом элементе списка их количество равно двум.

Покажите, что подозрения профессора небезосновательны, описав, как представить каждое множество связанным списком, таким, что каждая операция имеет то же время работы, что и указанное в тексте раздела. Опишите также, как работают эти операции. Ваша схема должна использовать эвристику с тем же эффектом, что и описанный в тексте раздела. (Указание: используйте в качестве представителя множества хвост списка.) 21.2.6 Предложите простое изменение процедуры Пм1оы для связанных списков, которое избавляет от необходимости поддерживать указатель 1ал( на последний объект каждого списка.

Ваше предложение не должно изменить асимптотическое время работы процедуры П1ч1ом независимо от того, используется ли в ней весовая эвристика. (Указание: вместо присоединения одного списка к другому воспользуйтесь вставкой в начало списка.) 21.3. Леса непересекающихся множеств В более быстрой реализации непересекающихся множеств мы представляем множества в виде корневых деревьев, каждый узел которых содержит один член множества, а каждое дерево представляет одно множество. В лесу непересекающихся множеств (Йа1о(пнзег Гогеаг) (рис.

21,4, (а)) каждый член указывает только на родительский узел. Корень каждого дерева содержит представителя и является родительским узлом для самого себя. Как мы увидим далее, хотя наивное программирование и не приводит к более эффективной работе по сравнению со связанными списками, введение двух эвристик — "объединение по рангу" и "сжатие пути" — позволяет достичь асимптотически оптимального выполнения операций над непересекающимися множествами.

Три операции над непересекающимися множествами выполняются следующим образом. Операция Маке-Бег просто создает дерево с одним узлом. Поиск в операции Рпчгз-Яет выполняется простым перемещением до корня дерева по 605 )лака Л. Сндгукнорм данник для ненересекающнгсл множеств (а) (6) Рис. 21А. Лес непересекаккдился множеств. (а) Дка дерева представляют дяа мнвкестяа, показанных на рис.

21.2. Дерево слева предсгакляет множестао (Ь, с, е, Ц, где с якяяется предсталителем, а дерево спряла представляет множесгко (Н, У, д) с представителем У. (61 Результат ямполнення ()нюн(е, д). указателям на родительские узлы. Посещенные узлы на этом простом пути составляют путь поиска (йпб раб)).

Операция ())(ю)(, показанная на рис. 21.4, (б), состоит в том, что корень одного дерева указывает на корень другого. Эвристики для снижения времени работы Пока что у нас нет никаких особых преимуществ перед реализацией с использованием связанных списков: последовательносп из п — 1 операций Шею)с может создать дерево, которое представляет собой линейную цепочку из и узлов. Однако мы можем воспользоваться двумя эвристиками и достичь практически линейного времени работы от общего количества операций пг.

Первая эвристика, объединение ло рану (нлюп Ьу шл((), аналогична весовой эвристике при использовании связанных списков. Ее суть заключается в том, чтобы корень дерева с меньшим количеством узлов указывал на корень дерева с ббльшим количеством узлов. Вместо явной поддержки размера поддерева для каждого узла можно воспользоввться подходом, который упростит анализ, — использовать ранг (гап)() каждого корня, который представляет собой верхнюю границу высоты узла. При выполнении операции ())ч)о)ч корень с меньшим рангом должен указывать на корень с ббльшнм рангом.

Вторая эвристика, сжатие пути (ра(Ь сошргезя(оп), также достаточно проста и эффективна. Как показано на рис. 21.5, она используется в процессе выполнения операции г поп-Бвт и делает каждый узел указывающим непосредственно на корень. Сжатие пути не изменяет ранги узлов.

Псевдокт)д для работы с лесами непересекающихся множеств Для реализации леса непересекающихся множеств с применением эвристики объединения по рангу мы должны отслеживать ранг узлов. Для каждого узла х нами поддерживается целочисленное значение х. гап(с, которое представляет собой верхнюю границу высоты х (количество ребер на самом длинном простом пути от х к листу, являющемуся его потомком).

При создании множества из одного элемента процедурой Мдкй-КЕт начальный ранг узла в соответствующем Часть и Сложные струюауры данных 16) Рис. 21.5. Сжатие пути в процессе операции Ргмо-Бнт. Стрелки и петли в корнея опугцены. (а) Дерево, представжпогдее множество, ло выполнения оперцпж Рцго-Бпт(о). Треугольники представлжст поддсревья, корнями которых явлжотся показанные узлы. Каждыа узел имеет указатель на своего родителя.

(а) То же множество после выполнения операции арно-Бнт(а). Квждма узел на пути поиска теперь указывает непосредспжнно на корсаж. дереве устанавливается равным О. Операции Р(ыо-Яет оставляют ранги неизменными. При применении процедуры П(чу(6 для обьединения двух деревьев имеются две ситуации, зависящие от того, имеют объединяемые деревья одинаковый ранг или нет. Если ранги деревьев разные, мы делаем юрана с ббльшим рангом родительским узлом по отношению к корню с меньшим рангом, но сами ранги лри этом остаются неизменными. Если же корни имеют одинаковые ранги, то мы произвольным образом выбираем один из корней в качестве родительского и увеличиваем его ранг.

Переведем этот метод в псевдокод. Родительский ло отношению к х узел обозначается как х.р. Процедура Ьнчк, являющаяся подпрограммой, вызываемой процедурой П(ч(о(с, получает в качестве входных данных указатели на два мзрня. МАКЕ-ЗЕТ(х) 1 хр=х 2 х.гап)г = О ()16(О(Ч(х, р) 1 1ХК(РЕЮ-БЕТ(х), Р1Ж-БЕТ()()) б07 Глана 7Ъ Структуры Ьанннт длн ненересекающиксн мнатнсте 1.1мк(х, у) 1 !1 х.

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

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

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