Главная » Просмотр файлов » Д. Кнут - Искусство программирования том 3 (2-е издание) - 2001 (Часть 2)

Д. Кнут - Искусство программирования том 3 (2-е издание) - 2001 (Часть 2) (1119371), страница 30

Файл №1119371 Д. Кнут - Искусство программирования том 3 (2-е издание) - 2001 (Часть 2) (Д. Кнут - Искусство программирования том 3 (2-е издание) - 2001 (Часть 2)) 30 страницаД. Кнут - Искусство программирования том 3 (2-е издание) - 2001 (Часть 2) (1119371) страница 302019-05-09СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

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

Слитором и Р. Е. Таржаном (дАСМ 32 (1985), 652-686). Они основаны на идеях, подобных используемым при эвристических перемещениях и перестановках (см. раздел 6.1). Данная технология была исследована Б. Алленом (В. АИеп) н Дж. Муиро (3. Мппго) (,УАСМ 25 (1978), 526-535), а также Дж. Битнером (Л. В!спет) (ЯХСОМР 8 (1979), 82-110[. Вытянутые деревья, подобно другим видам уже упоминавшихся сбалансированных деревьев, поддерживают операции как вставки и удаления, так и конкатенации н разделения, причем достаточно простым образом.

Более того, время, необходимое дяя доступа к данным в вытянутом дереве, не превышает времени доступа в статически оптимальном дереве, умноженного на некоторую небольшую константу (в установившемся режиме после серии операций с деревом). Слитор и Таржан предположили, что О61цее время доступа в вытянутом дереве не превышает оптимального времени доступа к данным н времени, необходимого для выполнения динамических поворотов согласно любому алгоритму работы с бинарными деревьями, умноженного на константу.

Рандомизацня позволяет использовать методы, даже более быстрые и простые, чем вытянутые деревья. Жан Вуйлемеи (.1еап ЪН111еш1п) [САСМ 23 (1980), 229-239] ввел понятие декаршавмх деревьев (сагГеэ1ап Егееэ), в которых каждый узел имеет два ключа (х,у). Часть х упорядочена слева направо, как в бинарных деревьях поиска; часть у упорядочена сверху вниз, как в случае приоритетной очереди (см. раздел 5.2.3).

С. Р. Арагон (С. В. Агакоп) и Р. Г. Зайдель (В. С. Белйе1) присвоили таким структурам данных очень цветастое название ггеар, которое получено в результате комбинирования частей слов ггееэ и 11еарз. (Видимо, наилучший русский термин должен звучать как дума — от дерева и кучи, — Прим. перев.) Только одна дуча может быть пост1юена на Основе и данных пар ключей (х1 у1) у . ° °, (ха ~ уа) ~ если все х и у различны.

Один из путей получения лучи — вставка х согласно алгоритму 6.2.2Т в соответствии с порядком у. Однако имеется еще один простой алгоритм для непосредственной вставки любых новых пар в лучу. Арагон и Зайдель обнаружили [РОС8 30 (1989), 540-546[, что, если х представляют собой обычные ключи, а у выбираются случайным образом, можно быть уверенным, что дуча имеет внд случайного бинарного дерева поиска. В частности, дуча со случайными значениями у всегда будет сбалансирована, за исключением случая экспоненцивльно малой вероятности (см. упр.

5.2.2-42). Арагон и Зайдель также показали, что дучи могут быть легко "скошены", так что, например, ключ х с относительной частотой 7 будет располагаться вблизи корня в соответствии со своей частотой, если с ним будет ассоциирована величина у = С111, где С вЂ” случайное число между 0 н 1. Дучи, в целом, предпочтительнее вытянутых деревьев, как показали некоторые проведенные Д. Э. Кнутом эксперименты, связанные с расчетами выпуклых оболочек [,7АСМ 46 (1998), 288-323]. Ф В следующее издание книги планируется добавить раздел 6.2.5, посвншенный рандозтзнровалным структурам данных. В нем будут рассмотрены списки с пропускамн [И'.

Рнйб, САСМ 33 (1990), 668-67б~, рандомизнронанние бинарные деревья поиска ($. Воига апд С. Маггшех, ЛАСМ 45 (1998), 288-3231, а также упомянутые в этом разделе "дучн". УПРАЖНЕНИЯ 1. [01] почему в случае 2 в (1) нельзя просто поменять местами левые поддеревья узлов А и В? 2. [16) Обьясните, почему, если достигнут шаг А? с В($) = О, дерево становится на один уровень выше.

° 3. [Мйб) Докажите, что сбалансированное дерева с Ж внутренними узлами не может содержать более (8 — ЦК ж 0,6180ЗЖ узлов с ненулевыми факторами сбалансированности. 4. [МЗЙ] Докажите или опровергните следующее утверждение; среди всех сбалансированных деревьев с Рьы — 1 внутренними узлами дерево Фибоначчи порядка Ь имеет наибольшую длину внутреннего пути. ° 5, [МЮБ) Докажите или опровергните следующее утверждение: если для последовательной вставки ключей Км, .., Кч в дерево, изначально содержащее только ключ К~ (К~ < К> « ..

Кя), используется алгоритм А, то полученное дерево всегда опшимально (т. е. имеет минимальную длину внутреннего пути среди всех бинарных деревьев с Ю узлами). 8. [М21) Докахсите, что (5) определяет производящую функцию для сбалансированных деревьев высотой Ь. 7. [МЕ?) (Н, Дж. А. Слоан (В, 1. А. Я)папе) и А. В. Ахо (А. У. АЬо).) Докажите замечательную формулу (9) для числа сбалансированных деревьев высотой Ь. (Указание. Положим, что С„= В„+ В„м н используем тот факт, что!об(С„~.~/С~в) очень малб при больших и.) 8. [М24[ (Л.

А, Хиздер.) Покажите, что существует константаб, такая, что В,',(Ц/Вл(Ц ж 2> — 1 + 0(2ь/Вь 1) при Ь -Ф оо. 9. [ВМее) Чему равна асимптотическое число сбалансированных бинарных деревьев с и внутренкнми узлами 2 „>е Веь? Чему равна асимптотнческая средняя высота ~ „>е ЬВьь/ /2 ь>оВ л? ь 10. [37] (Р. К. Ричардс (Н. С. НлсЬагбе).) Покажите, что сбалансированное дерево может быть единственным образом построено по списку его факторов сбалансированности 3(ЦВ(2) ...

8(А?) в симметричном порядке. 11. [М24) (Марк Р. Браун (Мшй Н. Вгони).) Докажите, что прн и > 6 среднее количество внешних узлов каждого из типов +1, -1, ь+И, +-В, -+В, — В составляет в точности (и+ 1)/14 для случайньи сбалансированных деревьев с и внутренними узлами, гюстроеннмх по алгоритму А. ь 12. [Е() Чему равно максимально возможное время работы программы А при вставке восьмого узла в сбалансированное дерево? Чему равно минимальное время для етого случая? 13.

[Об) Почему поле ИАНК лучше использовать так, как указано в тексте, а не хранить индекс каждого"узла в качестве его ключа (иазывая первый узел "Г', второй — "'2" и т. д.)? 14. [М) Можно лн адаптировать алгоритмы 6.2.2Т и 6.2.2П для работы с линейными списками с использованием поля Иайй, как зто было сделано для алгоритмов работы со сбалансированными деревьями? 15.

[18) (К. А. Крейн (С. А. Сгапе).) Предположим, что упорядоченный линейный список представлен в виде бияарного дерева с полями КЕТ и ИЬИИ в каждом узле. Разработайте алгоритм, который осуществляет поиск в дереве данного ключа К и определяет его положение в списке, т. е. находит число гп, такое, что меньше К лишь т — 1 ключей. ° 16. [20) Нарисуйте сбалансированное дерево, которое получается после удаления узла Е и корневого узла Г из дерева, показанного на рис. 20, с использованием предложенного в тексте алгоритма. ь 11. [21) Нарисуйте сбалансированное дерево, которое получается после конкатенации дерева Фибоначчи (12): (а) справа и (Ь) слева от дерева, показанного на рнс.

20, с помощью предложенного в тексте алгоритма конкатенации. 18. [22] Нарисуйте сбалансированные деревья, которые получаются после разделения дерева, показаняого на рнс. 20, на две части ((А,..., Ц и (1,...,Я)) с использованием предложенкого в тексте алгоритма. ° 19. [26] Найдите способ преобразования данного сбалансированного дерева так, ггобы фактор сбалансированности в корне не бмл равным -1. При этом должен сохраняться симметричный порядок узлов и должно поро;кцаться искомое сбалансированное дерево за 0(Ц единиц времени независима от количества узлов в исходном дереве.

20. [46] Рассмотрите идею использования ограиичекного класса сбелансированнмх деревьев с факторами сбалансированности, равными 0 нлп +1 (в этом случае поле В может свестись к одному биту). Существует ли для таких деревьев процедура вставки с разумной эффектявностьюу ь 21. [60] (Идеальная 6елансороека.) Разработайте алгоритм построения бинарных деревьев с Х узлами, которые оптимальны в смысле упр. о.

Он должен выполкяться за 0(Х) шагов н быть "последовательным", т. е. вы должны получать узлы по одному в порядке возрастания н строить частичные деревья по ходу, не зная окончательного значения уэ' (такой алгоритм может пригодиться для перестройки плохо сбалансированного дерева или прк слиянии двух деревьев в адно). 22. [МЙО) Каков аналог теоремы А для взвешенно-сбалансированных деревьев? 23. [МЯО] (Э. Рейнгольд (Е. Ке!пйо!6),) Покажите, что между сбалансированными по высоте и взвешенно-сбалансированными деревьями не существует простой взаимосвязи.

а) Докажите, что существуют сбалансированные по высоте деревья со скаль угодно малым отношением (вес левого поддерева) Днес правого поддерева) в смысле (17). Ь) Докажите, что существуют взвешенно-сбалансированные деревья, имеянцие скольугодно большую разность между высотой левого и правого нодлеревьев. 24. [М22) (Э.

Рейнгольд.) Докажите, что если усилить условие (17) до 1 левый вес — < <2, 2 правый вес то ему будут удовлетворять только идеально сбалансированные бинарные деревья с 2" — 1 внутренними узлами. (В таких деревьях левые и правые веса в каждом узле равны между собой.) 23. [27] (Ю. Нивергельт (Л. Х!еэегбе!1), Э. Рейнгольд и Ч. Вонг (С. %опй).) Покажите, что можно разработать алгоритм вставки во взвешенно-сбалансированные деревья с со- хранением условия (17), амполняющий не более 0(1с 8 Х) поворотов на вставку. 20.

[60] Исследуйте свойства сбалансированных барных деревьев прн ! > 2. ь 27. [М23] Оцените максимальное количество сравнений, необходимых для поиска в 2-3- дереве с Ф внутренними узлами. 28. Щ Реаяизуйте алгоритмы работы с 2-3-деревьями программно с достаточной эф- фективностью. 29. [М67] Проанализируйте поведение 2-3-деревьев в среднем при случайных вставках.

30, [26) (Э. Мак-Крейт (Е. 3(сСгшбЬС).) В разделе 2.5 обсуждался ряд стратегий динами- ческого распределения памяти, включая метод наилучшего подходящего (Ьевс-б!) (выбор области наименьшего размера, удовлетворяющей запросу) и метод первого подходящего (бгэс-бс) (выбор области с яаименьшим адресом, удовлетворяющей запросу).

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

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

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