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

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

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

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

Например. мы могли бы достичь состояния, в котором Р буферов заполнены на У Р и Р— 1 буферов полны, если бы в файле 1 находились ключи 1, 1+ Р, 1+ 2Р, ... при 1 < 1 < Р. Этот пример показывает, что, даже если разрешить одновременное чтение, необходимо иметь 2Р буферов ввода для подпержания иепрерывного вывода, если только мы ие перераспределяем память для частей буферов и ие исполъзуеч каким-либо образом "чтение вразброс" ! [Вообще говоря, если в блоках содержится меньше Р— 1 записей, требуется меиьше 2Р буферов, ио этот случай маловероятен.) 4. Раньше устаиавливать 8 (на шахах Г1 и Р4, а ве РЗ).

6. Если бы, например, все ключи во всех файлах были равны, то мы ие могли бы просто делать произвольный выбор во время прогнозярования; прогноз должен быть совместим с решениями, принимаемыми процессом слияния. Возможный безопасный путь состоят в том, чтобы найти на шахах г 1 и г 4 наименьшее возможное т, т. е. считать, что все записи из файла С(») меньше, чем все записи, имеющие тот же ключ в файле С[Я, если» < 11 (В сущности, номер файла присоединяется к ключу.) 6.

На шаге С1 установить также Т5РЕ(Т+ 1) +- Т+ 1. На шаге С8 слияние должно идти на Т5РЕ(р+ 2) вместо Т5РЕ(р+ 11. На шаге С9 установить (Т5РЕ(1),...,Т5РЕ(Т+1))»- (Т4РЕ(Т+11,...,ТЛРЕШ). Т. Метод, показанный на диаграмме А, есть (А»Р») АеВе(А»Р»)'АоВе(А»Р»)'Ае, Р»(А»В») АеРе(А»Р»)'АеРеоАеРеАе, Р»АеРе(А»Р») АоВеоА»Р»Ае, Р»А»Р»аА»Р»Ае, где а = (АеРе)~А»Р»АеРо(А»Р»)~(АаРо)~А»Р»(АоРо)~А»Р»АеВе. На первой фазе слияния записывается РеА»РзА»Р»А»Р»АеРеА»Р»А»В»А»Р»АеР»А»Х»АеРо(А»Р») валенту 5; на следующей записывается А»В» А»Р» А»Р» А»В»АеРоА» Р» А»Р» Аг на ленту 1, на следу- ющей -- Р»»А»Р»АоРеА»е на ленту 4. Последние фазы таковы; А»Р»А» — ВшА»В»Аи Р»зА»В»А» Р».4з А» Рг»А»» РшАз ВмА» Рез Рш Р»з Рш ' Аю 8.

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

Х =5, В=8300, В' =;34, Я= Г(3+1ХР)АУ(бр'))+1= 14, =1ЛЕ4, о =0.295, 6 - -1.136, а' = 11' = О, Значение формулы (9) = 85Ь с, к которому мы добавляем время начальной перемотки, получая в итоге 958 с Экономна примерно одной минуты во время слияния не компенсирует потерю времени нз-за начальной перемотки и смены ленты (если мы не работаем в мультнпрограммном режиме). 10. Во время стандартного многофэзного слияния перематывается около 54»У» файла (стол- бец»Проходы/фазы" в табл.

5.4.2-1), а саман длинная перемотка в стандартном каскадном слиянии охватывает примерна а»а„»/о - (4Х(2У вЂ” 1)) с»м~(яХ(4Т вЂ” 2)) < —,", файла (из упр. 5.4.3-5 н соотношения 5.4.3-(13)). 11. Только лля начальной и конечной перемоток имеет смысл использовать быструю пе- ремотку, так как бобина, содержащая весь файл примера, заполнена лишь немногим более чем на 10/23. Применяя в примере 8 значения к = (.946!по — 1,204) и л' = 1/8, получаем следующие итоговые оценки для примеров 1-9: 111Ь, 1296, 1241, 1008, 1014, 967, 891, 969, 856.

12. (а) Очевидное решение с 4Р + 4 буферами состоит в том, чтобы просто одновременно выполнять чтение и запись на спаренные ленты. Заметим, однако, что достаточно трех буферов вывода (в любой момент мы выполняем вторую половину операции записи из одного, первую половину операции записи нз второго и заполняем третий), Это наводит на мысль о соответствующем улучшении ситуации с буферамн ввода. Оказывается, что необходимо и достаточно 3Р буферов ввода и 3 буфера вывода, если испольэовать несколько ослабленный метод "прогнозирования". Лучший н более простой подход, предложенный Дж. Сю (3.

Еве), позволяет добавить к каждому блоку "опережающий ключ", который определяет последней ключ следующего блока. Метод Сю требует 2Р + 1 буферов ввода и 4 буфера вьпюда и является видоизмененным алгоритмом Р. (См. также раздел 3.4.9.) (Ь) В этом случае большое значение а означает, что число проходов по всем данным, которое мы должны выполнить, лежит между пятью и шестью, что сводит на нет преимущество слияния с двойной скоростью. Эта идея значительно лучше работает на восьми или девяти лентах.

13. Нет. Рассмотрите, например, положение непосредственно перед А1оА~»А1оАи. Однако две поляые бобины могртл быть обработаны. ') 0 -рог 0 14 бес О 1 — Рьг Ро 1 0 0 0 0 0 г — 1 1 — р>1г -рог 0 — 1 /~, -рэлг 1- р1г -рог О !ас О 1 1 1 0 О 0 13. Матрица А имеет внд Вюг В11г В~э 1 — г Вю+Вм+'' +В~» 1 А= В»ог Вшг 0 ... 0 0...0 (1Ц В г 1 — г 1 О 0 В»о+ В.1+ "+ В»» = 1 О 0 0 Следовательно, 1- В1ог -В11г ... -Вц„цг -В~»г бес(г — А) = дог -В»ог — В,г ... 1 — В„,„цг -В..* 0 0 -1 1 и можно прибавить все столбцы к первому, а затем вынести (1 — г). Значит, ро(г) имеет вид Ла(г)/(1 - г) н паз~ = Лп(Ц, поскольку Лп(Ц»4 0 н с)ег(Х вЂ” А) р 0 для [г[ с 1.

РАЗДЕЛ 5.4.7 1, Выполняйте сортировку от младших цифр к старшим поочередно в сисгемах счисления с основанниячи Р и Т вЂ” Р, (Если сгруппированы пары цифр, то получим, в сущности, чистое основайне Р. (Т вЂ” Р). Так„если Р = 2 и Т = 7, то система счисленяя — двоичнопятернчная, которая очевидным образом связана с десятичными обозначениями.) 2. Если К вЂ” ключ, находящийся в диапазоне от 0 до Є— 1, то пусть фнбоначчиевым представлением Р» — 1 — К будет.а»-эР»-~ + .. + а~ Рэ, где аз равны 0 нлн 1 и нет двух последовательных единиц.

после фазы у на ленте (у+ Ц шоб3 находятся ключи с ау = О, а на ленте (у — Ц глоб 3 — ключи с а; = 1 в порядке убывания значений а; г... аь [Представьте сортировальную машину для перфокарт с карманами "0" и "1" и рассмотрите процедуру сортирсмки Р„карт; иа которых перфорированы ключи а э... аг в и-2 колонках. Обгочная процедура нх сортировкп в порядке убивания, которая начинается с младшей цпфрм, может быть упрощена, поскольку все, что находится в кармане "1" в конце одного пршсода, попадает на следующем проходе в карман»0".) 4. Если бы на уровне 2 находился внешний узел, то иам не удалось бы построить такое хорошее дерево.

В противном случае на уровне 3 имеется самое большее трн внешних узла, на уровне 4 — шесть, так как предполшвется, что каждый внешний узел оказывается на одной и той же ленте. т а 9 а 6. 09, 08...,, 00, 19, ..., 10, 29, , 20, 39„ ..., 30, 40, 41, ..., 49, 59, :, 50, 60, 61, ..., 99. у. Да. Сначала распределяем записи во все меньшие в меиьшие подфайлы, пока не получим файлы на одной бобике, которые могут быть рассортированы отдельно. Этот процесс является двойствениым по отношеиию к сортировке файлов на одной бобине с последующим слиянием их во все болыпие и большие файлы на нескольких бобинах. РАЗДЕЛ $.4.6 1. Да.

Пусть направления файла и дерева выбора чередуются от возрастающего к убывающему, тогда в результате получим шейкер-сортировку Р-го порядка (см. упр, 9). 2. Пусть Ял = Р г — Хл; решим рекуррентные соотношения для лл, заметив, по (%+ ЦФЛл~.~ = Ф(Ж вЂ” 1)Ял + й' + )т'; следовательно, Я = 1()У+ 1) + 1 )/Ю(Х вЂ” 1) при йг > М. М+2 Теперь исключим Уи и получим Хл 20 У 1 1 — = — (ЖЧ+1-НМ~.2)+2~ — —— 01+1 3 + ~Л+1 М+г) 2 1'М+2'1 1' 1 1 1 ЗМ+4 3 1 3 / ~(Ф+1)Ж(У-1) (М+2)(М+1)М/ М+2 ' 3.

Да. Найдите элемент, который является медианой, за О(Ут') шагов, используя построение, аналогичное приведенному в теореме 5.3,3Ь, и с его помощью разделите файл. Еще один интересный подход, предложенный Р. У. Флойдом (К. 1т'. Р1оуд) и Э. Дж. Смитом (А. Ю. Бшйп), состоит в том, чтобы слить две серии из Х элементов за О(Ж) единиц времени следующим образом. Раздвиньте элементы иа лепте, оставив между ними промежутки, затем последовательно занесите в каждый такой промежуток число, которое определяет конечное положение элемеита, предшествующего этому промежутку.

4. Можно объединить график для этажей (1,..., р+ 1) с графиком для этажей (9,..., и): когда по первому графику лифт впервые достигает этажа р+ 1, то подняться на этаж 9 я действовать в соответствии со вторым графиком (считая текущих пассавгиров лифта "дополнительными" людьми в алгоритме теоремы К). После выполнения этого графика вернуться па этаж р+ 1 и возобновить прежний график. б. Рассмотрим Ь м 2, гп = 4 и следующее поведение алгоритма. Э ~: — гр — — ~Р~ $667 4566 В б- '— 13 — ~гг ЭВ 5667 2345 Э 1 — * — ~гг — — ~~г1 — ~ —— 5667 1234 2345 Э ~: — — +гг — — — М, 5566 Э аж 3: — 63 — +23 2556 Этаж 2. "— 62 — +ОО ОО55 Э 1: -55 — +оо оооо ! Теперь 2 (в лифте) меньше, чем 3 (на третьем этаже). (После построения примера, подобного этому, читателю должно быть ясно, как устзно.

вить справедливость более слабого свойства, используемого в доказательстве теоремы К.) 6. Найдем минимальные 1, 7', такие, что Ь; < Ь', и Ь > Ь'. Введем нового человека, который хочет переехать с этажа 1 на этаж у. При любом Й это не увеличит шах(нэ, г)аз п 1) или шах(Ью Ьь ). Продолжим процесс, пока не получим Ь, = Ь' при всех у. Теперь заметим, что алгоритм в тексте раздела, если изменить Ь на Ьэ нв шагах К1 и КЗ, по-прежнему работает. 6. Пусть нх чжло будет Р„и пусть ߄— число перестановок, для которых нь = 1 при 1 < Ф < и, Тогда Р„ш Ц,Р„~ + ЯгР„э+ + 1'„1„Ро, Ре = 1.

Можно показать, что ф, = 3" з при и > 2 (см. ниже), поэтому, используя пронзводящяе функции, получим ) Р„э" — — (1 — Зз)/(1 — 4х+ 2э ) = 1+ э+2з +ох +20з +ббэ + 2Ре ы (2+ 42) + (2 — Л) Чтобы доказать, что Я„= 3", рассмотрим тернарную последовательность х ~хз... х~, такую, что хг = 2, хе ж 0 и 0 < хь < 2 прн 1 < Ь < гь Следующее правило определяет взаимно однозначное соответствие между такими последовательностями я требуемыми перестановками агат... о: оэ = Ь, 1 шах(у ) (у < Ь илв х, = О) или 2 = 1 ), если хэ = О; если хэ = 1; пйп(у ) (у > Ь илн хз = 2) или у = и ), еглн хь = 2. (Это соответствие было получено автором совместно с Э.

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

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

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