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

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

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

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

Бнномиальные пирамиды 539 хранит дескриптор соответствующего элемента пирамиды. Точная природа этих дескрипторов зависит от приложения и его реализации. В разделе 19.1 определяются биномиальные деревья и пирамиды, а также частично рассмотрен вопрос их реализации. В разделе 19.2 показано, каким образом можно реализовать операции над биномиальными пирамидами, время работы юторых будет соответствовать приведенному в табл. 19.1. 19.1 Биномиальные деревья и биномиальные пирамиды Биномиальная пирамида представляет собой коллекцию биномиальных деревьев, так что данный раздел начинается с определения биномиальных деревьев и доказательства некоторых ключевых свойств. Затем мы определим биномиальные пирамиды и познаюмимся с их возможным представлением. 19.1.1 Биномиальные деревья Бияомиальиое дерево (Ь1пош(а! 1гее) Вь представляет собой рекурсивно определенное упорядоченное дерево (см.

раздел Б.5.2). Как показано на рис. 19.1а, биномиальное дерево Во состоит из одного узла. Биномиальное дерево Вь состоит из двух биномиальных деревьев Вь м связамоьюх вместе: корень одного из них является крайним левым дочерним узлом корня второго дерева. На рис. 19.1б показаны биномиальные деревья от Во до В4. Некоторые свойства биномиальных деревьев приводятся в следующей лемме. Лемма 19.1 (Свойства биномиальных деревьев). Биномиальное дерево Вя 1. имеет 2" узлов; 2.

имеет высоту к; 3. имеет ровно (",.) узлов на глубине(= 0,1,...,к; 4. имеет корень степени к; степень всех остальных вершин меньше степени корня биномиального дерева. Кроме того, если дочерние узлы юрия пронумеровать слева направо числами й — 1, й — 2,..., О, то 1-й дочерний узел корня является корнем биномиального дерева В;. Доказательство. Доказательство выполняется по индукции по )с. Базой индукции является биномиальное дерево Во, для которого тривиальна проверка выполнения свойств, перечисленных в лемме. Пусть перечисленные свойства выполняются для биномиального дерева Вь з. 1.

Биномиальное дерево Вь состоит из двух юлий Вь м поэтому Вь содержит 2" 1+ 2" 1 = 2" узлов. Часть Ч. Сложные структуры данных 540 геккх 1 3 Рис. 19.1. Рекурсивное определение бииомиального дерева, примеры биномиальиых деревьев и альтернативное предсгавление биномиальиых деревьев 2. Из способа, которым выполняется связывание двух копий Вя 1 в одно биномиальное дерево Вы следует, что глубина биномиального дерева Ва на единицу больше максимальной глубины биномиального дерева Вь и Таким образом, в соответствии с гипотезой индукции максимальная глубина дерева Вь равна (Й вЂ” 1) + 1 = Й. 3.

Пусть Р (1г, 1) — количество узлов на глубине 1 у биномиального дерева Вь Поскольку Вь состоит из двух связанных копий Вь ы узел биномиального дерева Вь 1 на глубине 1 появляется один раз на глубине 1 в биномиальном дереве Вы и второй — на глубине 1+ 1. Другими словами, количество узлов на глубине 1 в биномиальном дереве Вь равно количеству узлов на глубине 1 в биномиальном дереве Вь г плюс количество узлов на глубине 1 — 1 в Вь и Таким образом, Глава 19.

Биномиальные пирамиды 541 (При выводе использован результат упражнения В.1-7.) 4. Единственным узлом в биномиальном дереве Вь со степенью, превышающей степень в Вь м является корень, который имеет на один дочерний узел больше, чем в биномиальном дереве Вь и Поскольку корень биномиального дерева Вь 1 имеет степень Ь вЂ” 1, корень Вь имеет степень Ь. Теперь, в соответствии с гипотезой индукции, как показано на рис. 19.1в, дочерними узлами корня Вь 1 являются корни биномиальных деревьев Вь з, Вь з,..., Во.

Таким образом, когда выполняется привязка еще одного биномиального дерева Вь м дочерними узлами корня создаваемого дерева становятся кони биномиальных деревьев Вь ы Вь з,..., Вс. ° Следствие 19.2. Максимальная степень произвольного узла в биномиальном де- реве с и узлами равна 1к и. Доказательство. Доказательство следует из свойств 1 и 4 леммы 19.1. Термин "биномиальное дерево" происходит из свойства 3 леммы 19.1, поскольку члены (~) представляют собой биномиальные коэффициенты.

В упражнении 19.1-3 приводится еще одно обоснование этого термина. 19.1.2 Биномиальные пирамиды Бинвмиальнал пирамида (Ь(полна! Ьеар) Н представляет собой множество биномиальных деревьев, которые удовлетворяют следующим свойствам бинамиальных пирамид. 1. Каждое биномиальное дерево в Н подчиняется свойству неубывающей пирамиды (ппп-беар ргорег1у): ключ узла не меньше ключа его родительского узла. Мы говорим, что такие деревья являются упорядоченными в соответствии со свойством неубывающей пирамиды (ш1п-беар-оп1егеб).

2. Для любого неотрицательного целого /с имеется не более одного биномиального дерева Н, чей корень имеет степен~с. Первое свойство говорит нам о том, что корень дерева, упорядоченного в соответствии со свойством неубывающей пирамиды, содержит наименьший ключ в дереве. Из второго свойства следует, что биномиальная пирамида Н, содержащая п узлов, состоит не более чем из ~1б и)' + 1 биномиальных деревьев. Чтобы понять, почему это так, заметим, что бинарное представление числа и имеет ~15 и)' + 1 битов, скажем, (Ь11я„), Ьр „) м..., Ьс), так что и = 2 ', с" Ь;2 .

В соответствии 11я ь) 1 со свойством 1 леммы 19.1, биномиальное дерево В; входит в состав Н тогда Часть У. Сложные структуры данных 542 ыаа (70- --м Оо7.— - — ---~ 1 г,н — -- — — — — — — --з ~я", '.13 ! !117 (П7) !И) ,77 б, 'ь'ы !и! — — ~ ~~' Рис. 19.2. Бнномнальная пирамида с 13 узлами и только тогда, когда бнт Ь; = 1. Следовательно, биномиальная пирамида Н содержит не более [!я п] + 1 биномиальных деревьев. На рис.

19.2а показана биномиальная пирамида с 13 узлами. Бинарное представление числа 13 имеет вид (1101), и биномиальная пирамида Н состоит ю биномиальных деревьев Во, Вз и Вз, которые содержат, соответственно, 1, 4 и 3 узлов, причем ключ каждого из узлов не превышает ключ родительского узла Представление бииомиальиых пирамид Как показано на рис. 19.26, каждое биномиальное дерево в биномиальной пирамиде хранится в представлении с левым дочерним и правым сестринским узлами (которое рассматривалось в разделе 10.4). Каждый узел имеет поле Йеу и содержит сопутствующую информацию, необходимую для работы приложения.

Кроме того, каждый узел содержит указатель р [х] на родительский узел, указатель сЬгЫ [х] на крайний левый дочерний узел и указатель я61тд [х] на правый сестринский по отношению к х узел. Если х — корневой узел, то р [х] = нй.. Если узел х не имеет дочерних узлов, то сЫН [х] = 7чп., а если х — самый правый Глава 19. Биномиальные пирамиды дочерний узел своего родителя, то в(И(пд [х] = мп.. Каждый узел х, кроме того, содержит поле»(едгее [х), в котором хранится количество дочерних узлов х.

Как видно из рис. 19.2, корни биномиальных деревьев внутри биномиальиой пирамиды организованы в виде связанного списка, который мы будем называть слиском корней (гоог 1йт). При проходе по списку степени корней находятся в строго возрастающем порядке. В соответствии со вторым свойством биномиальных пирамид, в биномиальной пирамиде с п узлами степени корней представляют собой подмножество множества (О, 1,..., ~1бг»)). Поле вййпд имеет различный смысл для корней и для прочих узлов. Если х — корень, то в(Итд [х] указывает на следующий корень в списке (как обычно, если х — последний корень в списке, то в1Ытд [х) = нп.). Обратиться к данной биномиальной пирамиде Н можно при помощи поля Аеас [Н], которое представляет собой указатель на первый корень в списке корней Н.

Если биномиальная пирамида не содержит элементов, то Ьеа»1 [Н) = ьл . Упражнения 19.1-1. Предположим, что х — узел биномиального дерева в биномиальной пирамиде и что вййпд [х) 0» н|ь. Если х не является корнем, как соотносятся »(едгее [в(Итд[х)) и Иедгее [х]? А если х — корень биномиального дерева? 19.1-2. Если х — некорневой узел биномиального дерева в биномиальной пирамиде, как соотносятся Йедгее [х] и Недгее [р[х])? 19.1-3. Предположим, что мы помечаем узлы биномиального дерева Вь последовательными двоичными числами при обходе в обратном порядке, как показано на рис. 19.3.

Рассмотрим узел х на глубине г, помеченный числом 1, и пусть д = к — 1. Покажите, что в двоичном представлении х содержится д единиц. Сколько всего имеется 1»-строк, содержащих в точности д единиц? Покажите, что степень х равна количеству единиц справа от крайнего правого нуля в двоичном представлении 1.

»пи! ~0011, (Й01'~,'0И0 И01 ~,ПИ0) 900) фж.,з (00[0.') (0КОХ;Ю0) (00Ю! Рис. 19З. Биномнвльное дерево В» с узлами, помеченными двоичными числами при обходе в обратном порядке Часть Ч. Сложные структуры данньа 544 19.2 Операции над биномиальными пирамидами В этом разделе мы покажем, как выполнить операции над биномиальными пирамидами за время, приведенное в табл. 19.1. Мы покажем только верхиис границы; поиск нижних границ остается в качестве упражнения 19.2-10.

Создание новой биномиальной пирамиды Для создания пустой биномиальной пирамиды процедура МАкн Впчом1Аь НеАР просто выделяет память и возвращает объект Н, где ЬеаИ [Н] = 1чп.. Вреич работы этой процедуры составляет 9 (1). Поиск минимального ключа Процедура В11чом1Аь НнАР Мпч1мим возвращает указатель на узел с минимальным ключом в биномиальной пирамиде Н с и узлами. В данной реализации предполагается, что в биномиальной пирамиде отсутствуют ключи, равные сс (см. упражнение 19.2-5). В!ХОм1А1. НеАР М!ы1мБм(Н) у ~ — нц. 2 х — Ьеад[Н] 3 тт — оо 4 иМ1е х ~ нп. 5 йо Н Йеу[х] < тип 6 тЬеп т1п — 1сеу[х] 7 у — х 8 х — з1Ызпд [х] 9 гетпгп у Поскольку биномиальная пирамида является невозрастающей, минимальный ключ, должен находиться в корне.

Процедура В1ыом1Аь НпАР Мммим проверяет всс корни, количество которых не превышает [1к и] + 1, сохраняя текущий минимум в переменной т1п, а указатель на текущий минимум — в переменной у. При вызове для биномиальной пирамиды„представленной на рис. 19.2, процедура В1ыомж НнАР М1ы1мим вернет указатель на узел с ключом 1.

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

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

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