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

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

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

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

45). Фазы 2 и 3 требуют только 0(п) шагов. Кляйтман (К!еРлпап) и Сакс (Байя) (ЯАМ .!. А!Иеб. Пист. Месбог(я 2 (1981), 142-146) доказали, что оптимальиая взвешенная длина пути никогда не превышает значение оптимальной взвешенной длины пути, которая получается при перестановке в в "пилообразном" порядке: че < чя < !И « чт(чю! < Я(~~э'-~ < ' ' " < чз < !Ь (32) (Этот порядок представляет собой инверсию "органного" порядка, который обсуждался в упр. 6,1-18.) В последнем случае алгоритм Гарсия-Воча сводится к алгоритму Хаффмаиа на множестве весов дв + !Ь, дв + пз, ..., поскольку веса в рабочем массиве в действительности находятся в порядке иевозрастаиия (а ие только в "попарно убывающем" порядке, как в (ЗЦ).

Следовательно, мы можем улучшить верхиюю границу в теореме М, ие зная порядка весов. Оптимальное бинарное дерево иа рис. 19 имеет, помимо значения в теории поиска, большое прикладное значение в теории кодирования: используя 0 для левых ветвей дерева и 1 — для правых, мы получим следующие коды переменной длины. 00 1 1000 й 11001 А 0100 Л 1001000 8 1101 8 010100 К 1001001 Т 1110 С 010101 1. 100101 0 111100 0 01011 И 10011 Ч 111101 (33) 8 0110 И 1010 Ч 111110 Р 011100 0 1011 Х 11111100 8 011101 Р 110000 Т 11П1101 Н 01111 Ц 110001 2 1111111 Таким образом, сообщение типа 810НТ 0И может быть закодировано строкой 1100110000111010111111100010111010.

Декодирование слева направо выполняется просто и однозначно, несмотря иа то что коды имеют различную длину -- сама структура дерева показывает, когда заканчивается один символ и начинается другой. При данном методе кодирования сохраняется алфавитный порядок и используется в среднем около 4.2 бит для кодирования одного символа. Таким образом, этот код можно использовать для упаковки файлов данных без нарушения лексикографического порядка буквеииой информации, (Число 4,2 бит на символ минимально среди всех кодов, в которых используются бинарные деревья; оно может быть уменьшено до 4.1 бит на символ при отказе от алфавитного порядка.

Уменьшение до 4.1 бит на символ с сохранением алфавитного порядка возможно при кодировании не отдельных символов, а пар символов.) История и библиография. Рассмотренные в этом разделе методы поиска с использованием деревьев были открыты независимо несколькими исследователями в 50-е годы.

В неопубликованном меморандуме, датированном августом 1952 года, Л. И. Думи (А. 1. Пптеу) описал примитивный путь вставки в дерево. Рассмотрим барабан с 2" элементами, каждый из которых имеет бинарный адрес. Следуйте описанной ниже программе. 1. Прочтите первый элемент и поместите его по адресу 2" ~, т. е, в середину массива хранения. 2. Прочтите следующий элемент.

Сравните его с первым. 3. Если ои больше, поместите его по адресу 2" ' + 2" з. Если же он меньше, поместите его по адресу 2" в, и т. д. Другая ранняя форма вставки в дерево была введена Д. Дж. Вилером (П. 3, %Ьее!ег), который допускал многопутевые разветвления (подобные тем, которые будут рассмотрены в разделе 6.2.4); еще один метод вставки в бинарное дерево был предложен К. М. Бернерсом-Ли (С. М. Вегпегв-Бее) (см. Сотр.

Я. 2 (1959), 5). Первые опубликованные описания вставки в дерево принадлежат П. Ф. Виндли (Р. Р. %'щсИеу) (Сотр. д. 3 (1960), 84-88), Э. Д. Буту (А. О. ВоосЬ) и Э. Дж. Т, Колину (А. д. Т. Сойп) (1п(огтаг)оп апд Сопсго) 3 (1960), 327-334), а также Томасу Н. Хиббарду (ТЬотав К. Н1ЬЬагд) (,УАСМ 9 (1962), 13-28). По-видимому, каждый из авторов пришел к своему методу независимо от других, и в каждой статье среднее количество сравнений (6) вывалится по-своему. Авторы также сосредоточивали свое внимание на разных аспектах алгоритма: Виндли подробно разбирал сортировку путем вставки в дерево, Бут и Колин исследовали влияние предварительного построения идеально сбалансированного дерева из первых 2" — 1 элементов (см. упр.

4), Хиббард предложил идею удаления и показал связь между анализом вставки в дерево и анализом быстрой сортировки. Идеи оптнмольнмк бинарных деревьев поиска первоначально были развиты для частного случая р~ = ... — — р„= 0 в контексте бинарного кодирования алфавита, подобного (ЗЗ). В очень интересной статье Э. Н, Гильберта (Е. Х.

СВЬегс) и Э. Ф. Мура (Е. Р. Мооге) (Ве)( ЯувВет Тесй. Х 38 (1959), 933-968] обсуждается эта задача и ее связь с другими задачами кодирования. Гильберт и Мур доказали теорему М для специальною случая Р = 0 и заметили, что оптимальное дерево может быть построено за 0(пз) пвагов с помощью метода наподобие алгоритма К, но без использования соотношения монотонности (17). К. К). Айверсон (К. Е. 1тегвоп) (А Ргойгатпипй Ьапйпайе (%11еу, 1962), 142-144] независимо рассмотрел другой случай, когда все дь равны нулю. Он предположил, что оптимальное дерево можно получить, выравнивая вероятности левого и правого поддеревьев; к сожалению,мы видели, что зта идея ие срабатывает... Д. Э.

Кнут (О. Е. КппсЬ) [Асса ЕпГогтав)са 1 (1971), 14-25, 270] погледовательно рассмотрел случаи произвольных весов рь и йь н доказал, что алгоритм может быть сведен к О(пз) шагам; он также представил пример использования этих методов в компиляторе, где ключами дерева являлись '"зарезервированные слова" АЬПОЬ-подобного языка. Т. Ч. Ху (Т. С.

Нп) несколько лет изучал собственный алгоритм для случая р: = 0; из-за сложности задачи было трудно найти строгое доказательство корректности алгоритма, однако в сотрудничестве с А. К. Таккером (А. С, Тпсйег) такое доказательство, в конце концов, было найдено [ЯАМ Х Арр!1ег( МаСЬ. 21 (1971), 514-532[. Упрощения, приведшие к разработке алгоритма С, были найдены несколькими годами позже А. М. Гарсии (А, М. Саггба) и М. Л. Вочем (М. 1,. %асйэ) [ЯСОМР 6 (1977), 622 — 642]; их доюзательство, впрочем, было слишком сложным и запутанным.

Леммы %, Х, Ъ и Х, описанные выше, появились благодаря Дж. Х. Кингстону (Х Н. К1пбэсоп) [Х А(8огДЬтз 9 (1988), 129-136[. (См. также статью Ху (Нп), Кляйтмана (К1е)сгпап) и Тамаки (Тягла)п) [ЯАМ Х Аррйед МагЬ. 37 (1979), 246-256], в которой дано элементарное доказательство алгоритма Ху-Таккера н некоторые обобщения для других ценовых функций.) Теорема В доказана Паулем Дж. Байером (Рап1 3. Вауег) [М1Т/ЬСБ/ТМ-69 (Маза. 1пэп о( ТесЬ., 1975)], который также доказал теорему М (в ослабленной формулировке).

Строгое доказательство указанной теоремы найдено К. Мельхорном (К. МеЫЬогп) [ЯСОМР 6 (1977), 235--239]. УПРАЖНЕНИЯ 1. [10] Алгоритм Т сформулирован только для иепустык деревьев. Какие изменения дачжны быть внесены в алгоритм для корректной работы и в случае пустых деревьев? 2. [30] Измените алгоритм Т таким образом, чтобы он работал с ораванрошишэсми деревьями (см, раздел 2.3,1; такие деревья упрощают выполнение симметричного обхода дерева). 3.

[30] В разделе 6.1 мы видели, что, внеся небольшие изменения в алгоритм последовательного поиска 6.13, можно сделать его более быстрым (алгоритм 6.112). Можно ли воспользоваться похожим приемом для ускоренна работы алгоритма Т? 4. [М34] (Э. Д. Бут (А. П. Воогб) и Э. Дж. Т. Колин (А, Х Т. Сойв).) Даны Ф ключей в случайном порядке. Предположим, что мы используем первые 2" — 1 из них для построения нлеальпо сбалансированного дерева и размещаем 2" ключей на уровне 1 для всех 0 ( 1 < и; затем для вставки оставшихся ключей мы используем алгоритм Т. Чему равно среднее число сравнений в случае успешного поиска? (Указание.

Модифишэруйте формулу (2).) 6. [ИЗБ] Имеетсв 11! = 39916 800 различных способов упорядочения названий САР31003Н. 10013103 и т. д, для их вставки в бинарное дерево поиска. а) В результате скольких перестановок получится дерево, изображенное нв рис. 10? о) В результате скольких перестановок получится емроясдсннос дерево, в каждом узле 11133 или 3113к которого равны Л? 6. [М30] Пусть Р„ь -- количество перестановок а~ аэ...а множества (1,2,...,и). таких, что при использовании алгоритма Т лля вставки амаг...а„в изначально пустое дерево для вставки элемента а„потребуется ровно 1 сравнений. (В этой задаче мы пренебрегаем сравнениями, выполняемыми при вставке аь,а„ь В принятых в тексте обозначениях С'„, = (2, АР„э)7лй так как это среднее количество сравнений, которые выполняются в случае неудачного поиска в дереве, содержащем и — 1 элемент.) а) Докажите, что Ры+мь — — 2Р„ы м+ (и — 1)Р„ы (Указание.

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

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

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