AOP_Tom3 (1021738), страница 56

Файл №1021738 AOP_Tom3 (Полезная книжка в трёх томах) 56 страницаAOP_Tom3 (1021738) страница 562017-07-10СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

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

Будем называть бинарное дерево с этим свойством левосторонним деревом, поскольку оно, как правило, сильно "тянется" влево. Из этих определений ясно, что равенство 013Т(Р) = и подразу'мевает существование, по крайней мере, 2" пустых поддеревьев, расположенных ниже Р; в противном случае нашелся бы более короткий путь от Р до концевого узла Л.

Таким образом, если в левостароннем дереве имеется Х узлов, то путь, ведущий из корня вниз по направлению вправо, содержит не более чем ((К(М + 1)) узлов. Новый Связанное представление приоритетных очередей. Эффективный способ представления приоритетных очередей в ниде связанных бинарных деревьев предложил в 1971 году Кларк Э. Крэйн [см. С!аг)с А. Стане, Тесйп!са! Нерогг БТАйь СБ-72-259 (Сошрп(ег Яс!енсе 1)ераг(шеп(, Бсапгога' Пштегэйу, 1972))). Его метод требует наличия в каждой записи двух полей связи и короткого поля счетчика, но по сравнению с пирамидами он обладает следующими преимуществами.

!) Если с приоритетной очередью работают, как со стеком, та операции включения и исключения более эффективны (они отнимают фиксированное время, не зависящее от длины очереди). Н) Записи никогда не перемещаются, изменяются только указатели. ш) Можно слить две непересекающиеся приоритетные очереди, содержащие в общей сложности Х элементов, всего за О(!оК Х) шагов. Немного видоизмененный метод Крэйна проиллюстрирован на рис. 27, на котором показан особый тип структуры бинарного дерева.

В каждом узле содержатся паче КЕУ, поле 013Т и два поля связи — РЕЕТ и НХСНТ. Поле 013Т всегда устанавливается равным длине кратчайшего пути от этого узла да конечного узла (т. е. до пустого узла Л дерева). Если считать, что 013Т(Л) = 0 и КЕУ(Л) = — оа, то поля КЕУ и Р13Т в этом дереве удовлетворяют следующим соотношениям: Рнс. 27. Приоритетная очередь, представленная в виде левостороннего дерева. узел можно вставить в приоритетную очередь, пройдя по этому пути (см.

упр. 33). Следовательно, в худшем случае необходимо всего 0(1оЕХ) шагов. Наилучший случай достигается, когда дерево линейно (все связи Н1СНТ равны Л), а наихудший случай - — когда ано абсолютно сбалансировано. Чтобы удалить узел из корня, нужно просто слить два его поддерева. Операция слияния двух непересекающихся левосторонних деревьев, на которые ссылаются указатели Р и Ц, по своей идее проста: если КЕТ(Р) > КЕТА), то берем в качестве корня Р и сливаем () с правым поддеревом Р.

При этом изменится 01БТ(Р), а ЕЕРТ(Р) поменяется местами с Е1СНТ(Р) в случае необходимости, Нетрудно составить подробное описание этого процесса (см. упр. 33). Сравнение методов работы с приоритетными очередями. Если число узлов Х мэлб, то для поддержания приоритетной очереди лучше всего прибегнуть к одному из простых методов с использонанием линейных списков. Если же М велико, та, очевидно, гораздо более быстрым будет метод, использующий пирамиду нли левастороннее дерево, время работы которого составляет порядка 1оЕХ. В разделе 6.2.3 будет рассмотрен еще один способ представлении линейных списков— в виде сбалансированных дерееьее. Он приводит нас к третьему методу, пригодному для представления приоритетных очередей со временем работы порядка 1окФ. Поэтому уместно сравнить трн данных метода. Мы видели, что операции над левосторонними деревьями, в целом, выполняются несколько быстрее, чем операции над пирамидами, на пирамиды занимают меньше памяти.

Сбалансированные деревья занимают примерно столько же памяти, сколько левосторонние (быть может, чуть меньше); операции над ними выполняются медленнее, чем над пирамидами, и программирование сложнее, но структура сбалансированных деревьев в некоторых отношениях существенно более гибкая. Работая с пирамидами, не так просто предсказать, что произойдет с элементами, если у них равные ключи. Нельзя гарантировать, что элементы с равными ключами будут обрабатываться по принципу "последним пришел — первым вышел" или "первым пришел — первым вьппел", если только ключ не расширен и не содержит дополнительного поля "порядковый номер вставки'; тогда равных ключей просто иет.

С другой стороны, если применять сбалансированные деревья, можно легко оговорить жесткие условия, относящиеся к равным ключам. Можно также выполнять такие действия, как "вставить х непосредственно перед (или после) у". Сбалансированные деревья симметричны, так что в любой момент можно исключить либо наибольший, либо наименьший элемент, в то время как левостаронние деревья и пярамиды должны быть так или иначе ориентированы.

(См., тем не менее, упр. 31, в котором показано, как строить симмсшричиме пирамиды.) Сбъсансированные деревья можно использовать и для поиска, и для сортировки. Из сбалапсированнога дерева можно довольно быстро удалять последовательные блоки элементов. Но два сбалансированных дерева нельзя слить менее чем за Й(Дс) шагов, в то время как два левосторонних дерева можно слить всего за 0(!о8 Л) шагов.

Итак, сортировка с использованием пирамид наиболее экономна с точки зрения требований к объему памяти; левосторонние деревья хороши тем, что позволяют быстро слить две непересекающиегя приоритетные очереди; и, если нужно, по весьма умеренной цене можно получить гибкость, предоставляемую сбалансированными деревьями. Ф Со времени выхода в свет "пионерской" работы Ъбзльямса и Крэйна разработано много новых способов представления лриорлтетных очередей. Теперь в раси лорнжснил программистов имеется большое разнообразие опций, помимо простых списков, левостороннпх и сбалансированных деревьев. Некоторые из лих перечислены ниже: ° спрямленные деревья, которые обеспечивают обработку симметричной приоритетной очереди всего за 0(1о81о8М) шагов, если все ключи лежат в заданном диапазоне 0 ( К < М [Р.

чапс Ешс(е Воая, К. Каая, Е. Х1)!ягга, Магйс Яуясешя Т1сеогу 10 (1977), 99-127]; ° биномиальные очереди [Я. Чшйеш1п, САСМ 12 (1978), 309 — 315; М. В.. Вгокп, 81СОМР 7 (1978), 298-319]; ° пагоды [Л. Ггапчоп, С. "я'1еппоц Л. 1сп1!1еш1сс, ГОСЯ 19 (1978), 1 — 7]; ° парные пирамиды [М. Ь. Ггес1псасц К. 8едйекчс)с, О. О.

81ежог, К. Е. Тат]ап, А18ог115ппса 1 (1986), 111 — 129; Л. Т. 8гая1со, Л. 8. 'сс1гсег, САСМ 30 (1987), 234-249]; ° спиральные пирамиды [О, О. 8!еасог, К. Е. Тат)асц аСОМ~ 15 (1986), 52-59]; ° пиралсиды Фибоначчи [М. 1.. Ггес1псап, К. Е. Таг1ап, 7АСМ 34 (1987), 596-615] н более общие АГ-пирамиды [М. 1,. Ггейпап, О. Е. %1Пвгс1, Х Сошрпгег апс) Яуясеш ЯсЬ 48 (1994), 533-551]; я календарные очереди [К. Вгокп, САСМ 31 (1988), 1220 — 1227; С. А. Оач1яоп, САСМ 32 (1989), 1241 — 1243]; «ослабленные пирамиды [5.

В. Рг1зсо11, Н. Л». ОаЬоэч, В. БЬга1гшап, В. Е. Тат(ап, САС64 31 (1988), 1343-1354]; ° острбга [М. 3. Р1зсЬег, М. Б. Ратегзоп,,7АСМ 41 (1994), 3-30); ° "горячие" очереди [В. У'. СЬегбазэ1су, А. Ъ'. Оо14Ьег8, С. 81!тегэсе1п, БОРА 8 (1997), 83-92). Не все нз этих методов выдержалн испытание временем. Левосторонние деревья сегодня — уже анахронизм; они используются разве, что в тех приложениях, в которых необходимо жестко соблюдать дисциплину "последним пришел — - первым вышел". Детали реллиэацпп бпномнальиых очередей п пирамид Фпбоначчп можно найти в работе Р.

Е. КпиВЬ ТЛе Б1апГог»1 ОгарЛВазе (»Л»е»г Уог(г: АСМ Ргеэз, 1994), 475-489. 26'» 15, 10', 7, 7, 6', 3, 3, 3, 3., 3, 3, 2', 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1'. (12) Звездочками помечены особые под»уеревьл с корнями в особых узлах; в упр. 20 показано, что если Л» имеет двоичное представление Лг — (Ь 6 — » ° ° Ь\ 60)з и — [18 Л ), (13) то размеры особых поддеревьев равны (16~-»...6»6о)э, (16е-т ° ..Ь»Ьо)э,, (1Ь»Ьо)э (16е)з (1)э ° (14) Неособые поддеревья всегда абсолютно сбалансированы, так что их размеры имеют вид 2" — 1. В упр. 21 показано, что среди неособых поддеревьев существует ровно Лг — 11 1 Лг — 2 1 1 Лг — 4! 2 з ~ размером 1, ~ [ размером 3, ~ — [ размером 7, 4 [ ' [.

8 .! 2и-» ~ (2" — 1) размера. (15) Например, на рис. 28 изображено двенадцать неособых поддеревьев размером 1„ шесть поддеревьев размером 3, два — размером 7 н одно — размером 15. Пусть з» вЂ” размер поддерева с корнем 1, а Мм — мультимножество (з», зз,..., зл») всех этих размеров. Используя (14) и (15), легко вычислить Мл» прн любом заданном Л». В упр. 5.1.4-20 показано, что общее число способов построения пирамиды из целых чисел (1,2,..., Лг) равно Л"~э»ээ 'и=~(/П(з[эб Ми) (16) «Анализ пирамидальной сортировки. Алгоритм Н до сих пор не был пш»н»ютью проанализирован математическими методами, но некоторые его свойства можно вывести без особого труда. Поэтому данный раздел завершается довольно подробным анализом пирамид. На рис.

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

Тип файла
DJVU-файл
Размер
10,16 Mb
Тип материала
Высшее учебное заведение

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

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