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

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

PDF-файл Д. Кнут - Искусство программирования том 3 (2-е издание) - 2001 (Часть 2), страница 3 Практикум (Прикладное программное обеспечение и системы программирования) (37176): Книга - 4 семестрД. Кнут - Искусство программирования том 3 (2-е издание) - 2001 (Часть 2): Практикум (Прикладное программное обеспечение и системы программирования) 2019-05-09СтудИзба

Описание файла

PDF-файл из архива "Д. Кнут - Искусство программирования том 3 (2-е издание) - 2001 (Часть 2)", который расположен в категории "". Всё это находится в предмете "практикум (прикладное программное обеспечение и системы программирования)" из 4 семестр, которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .

Просмотр PDF-файла онлайн

Текст 3 страницы из PDF

Может показаться, что появление виртуальной памяти прщюдит к отмираиию методов внешней сортировки, так как зта раГюта может быть выполиена с помощью методов, предназначенных для внутренней сортировки. Проанализируйте такую ситуацию. Почему специально разработанный метод внешней сортировки может оказаться лучше применения обычной технологии подкачки страниц к методу внутреиней сортировкиу ь 21. [М15[ Сколько блоков переходят на диск У из 1 блочного файла при разделении на Р дисков? 22. [32[ Пусть сливаются два файла по принципу Гилбрета и желательно сохранить ключи о~ с о блоками и ключи )1з с Ь блоками.

В какай блок необходимо поместить аз для того, чтобы получить при необходимости нужиук> ииформациюу ь 23. [30[ Какой объем памяти необходим для входных буферов., в которых предполагается довольно продолжительно хранить исходные даниые, если выполняется 2-путевое слияние посредством (а) разделеиия суперблоков; (Ь) принципа Гилбретау 24, [Муб[ Предположим, что Р серий разделены между Р дисками ззк, что блок У серии (с находится иа диске (яь + 1) пюб Р. Прп выполиеиии Р-путевога слияиия зги блоки будут считываться в некотором хроиологическом порядке, подобном (19).

Если группы из Р блоков должиы вводится продолжительное время, то в момент времени Г мы будем считывать с каждого диска г-й в хронологическом порядке блок, как в (21). Каков мииимжи,ный объем буфера в памяти (в количестве записей), необходимый для хранения исходных данных, которые еще це были вовлечены в процесс слияиия, если не учитывать хронологический поридок? Объясиите, как выбрать смещения ям яв, ..., яр с тем, чтобы в худшем случае требовалось как можио меньше буферов.

25. [ЗУ[ Повторите пример из текста раздела, рассмотреиимй в связи с раидомизировав- иым разделением, изменив условия: пусть (в = 3 вместо»в ш 4. Что окажется в буферах в отличие от (24)7 26. [26] Сколько выходиых буферов необходимо, чтобы выполиеиие Р-путевого слияния с раидомизироваииым разделеиием никогда ие было приостановлено из-за отсутствия места в памяти для размещения только что полученных в результате слияния данных? Считайте, что время записи блока равна времени считывания, 27. [НМ27[ (Проблеме циклической веиятосгяи.) Предположим, что и пустых урп рас- ставлены по кругу и им присвоеиы номера О, 1, ..., и — 1. При и = 1, 2, ..., р мы бросаем т» и»аров в урны (Х» + у) шоб и, / = О, 1, ..., гл» вЂ” 1, где целые числа Х» выбираются случайно.

Пусть Я„(тм..., тр) — число шаров в урне О, а Е„(т,,..., тр) — ожидаемое число шаров в самой заполиеииой урне, а) Докажите, что Е„(тм...,тр) с 2",, ппп(1, прг(Я»(тм...,тр) > 1)), где т = т, + + глр, Ь) Используя неравенство в оютиошеиии 1.2.10-(25), докажите, что Е„(тм..,,тп ) < ву пил~1, ч . 7 п(1+а»/п)м Х (1+ а»)" ) для любых иеотрипательиых действительных чисел ам ам ..., а .

Какие значения ам ..., а„дадут наилучшую верхнюю оценку? 28. [НМ47) Продолжая упр. 27, ответьте, справедливо ли иеравеиство Е„(тм..., тр) > Е (т»+гп2,т», тр) р 20. [Муд) Назиачеиие этого уиражиеиия — вывести верхнюю опенку средиего времени, необходимого для ввода любой последовательности блоков в хронологическом порядке при выполнении процедууры раидомизироваииого разделеиия, когда блоки представляют Р серий и Р дисков. Мы говорим, что блок, ожидаемый иа некотором временном цикде в то время, когда выполняется алгоритм (см.

(24)), является "маркированным"; таким образом, суммарное время ввода пропорционально числу маркированных блоков. Маркирование зависит только от хроиологической последовательности доступа к блокам (см. (20)). а) Докажите, что если Я+ 1 последоват ельиых блоков в хронологическом порядке имеют )У блоков иа диске 3, то ие более шах(№, №,..., Жп ~) из иих являются маркироваипыми. !») Усильте результат (а), показав, что ои имеет место также для Я+ 2 последовательных блоков. с) Теперь используйте результаты анализа проблемы циклической занятости из упр.

27 и получите верхнюю оценку среднего времени выполнения в терминах функции г(Р, »/+ 2), как в табл. 2, задав любой хронологический порядок. ЗО. [НМЮО) Докажите, что для функции г(И, гл) из упр. 29 при в -+ ~ю выполияется условие г(Ы, во!обд) = 1+ О(1/ /в ) для фиксированного Ы.

З2. [НЩ8) Проаиализируйте раидомизироваииое разделение и определите поведение этого алгоритма в среднем, а ие только но отношению к верхней оценке, как функцию от Р., (в' и Р, (Иитересен даже случай для Я = О, когда требуется в средием ЩЕ/иРР ) циклов чтения.) 5.5. РЕЗЮМЕ. ИСТОРИЯ И БИБЛИОГРАФИЯ ТепеРь, когда мы почти достигли конца этой очень длинной главы, "рассортируем" наиболее важные из рассмотренных выше сведений. Алгоритм сортировки — - зто процедура, которая реорганизует файл записей таким образом, что ключи оказываютси расположенными в порядке возрастания. Вследствие такого упорядочения группируются записи с равными ключами, становится возможной эффективная обработка множества файлов, рассортированных по одному ключу, создается информационная основа для эффективных алгоритмов выборки и более убедительно выглядят документы, подготовленные с помощью компьютера.

Внутреиилл сортировка используется в тех случаях, когда все записи помещаются в быстродействующей внутренней памяти компьютера. Мы изучили с разной степенью детализации более двух десятков алгоритмов внутренней сортировки. Но, наверное, было бы куда спокойнее, если бы мы не знали столько различных подходов к решению данной задача! Изучение всех этих методов бьию приятным времяпрепровождением.

Но теперь перед нами безрадостная перспектива — предстоит на деле решить, какой метод следует использовать в той или иной конкретной ситуации. Было бы прекрасно, если бы один или два метода сортировки превосходили все остальные безотносительно к приложению или используемой ма~пине. На самом же деле каждый метод имеет свои собственные, одному ему присущие достоинства. Например, метод пузырька (алгоритм 5.2.2В) не имеет ярко выраженных преимуществ, так как всегда можно найти лучший способ сделать то, что он делает; по даже он после соответствующего обобщения оказывается полезным для сортировки с двумя лентами (см. раздел 5.4,8). Итак, приходим к заключению, что почти все алгоритмы заслуживают того, чтобы о них помнили., так как существуют приложения, в которых какой-либо из них оказывается самым подходящим.

В следующем кратком обзоре освещаются основные аспекты наиболее важных алгоритмов внутренней сортировки, с которыми мы встречались. (Как обычно, А' означает число записей в файле.) 1. Распределлющий гюдс ~ет. Если диапазон ключей невелик, очень полезен алгоритм 5.20, Метод устойчив (не изменяет порядок записей с равными ключами), но требуется память для счетчиков и 2А" записей. Одна из модификаций, позволяющая сэкономить Ж из этих записей ценой устойчивости, встречается в упр. 5.2-13.

2. Простая вставка. Алгоритм 5.2.13 наиболее прост для программной реализации, не требует дополнительного объема памяти и довольно эффективен при малых Х (скажем, при Х < 25). При больших Х он становится невыносимо медленным, если только исходные данные пе окажутся сразу почти упорядоченными. 3. Сортировка с убивающим смещением. Алгоритм 5.2.1Р (метод Шелла) также довольно просто программируется, использует минимальный объем памяти и весьма эффективен при умеренно болыпих % (скажем, при 1У < 1000).

4. Вставка в список. Алгоритм 5.2.11, основан на той же идее, что и алгоритм простой вставки, и поэтому годится только при небольших Ж. Как и в других методах сортировки списков, в нем благодаря операциям со ссылками экономятся затраты на пересылку длинных записей; это особенно удобно, когда записи имеют переменную д'шну или являются частью других структур данных. 5. Соршнроека с вычислением адреса эффективна, если ключи подчиняются известному (обычно — равномерному) закону распределения; важнейшими вариантами этого подхода являются всшаекн е иескояьке списков (программа 5.2.1М) и комбинированная поразрядная сортировка со вставками Ыак-Ларена (рассмотренная в конце раздела 5.2.5). Для последнего метода достаточно иметь О(~/Х) дополнительных ячеек памяти.

Двухпроходный метод, который позволяет иметь дело с неравномерным распределением, анализируется в теореме 5.2.5Т. б. Обменная соршироека со слиянием. Алгоритм 5.2.2М (метод Бэтчера) и родственный ему алгоритм бишонной сортировки (упр. 5.3.4-10) полезны, если можно одновременно выполнять Гюльшое число сравнений. 7. Обменная сортировка с разделением (метод Хоара, широко известный как быстрая сортировка). Алгоритм 5.2.2Я, веронтно, — самый полезный универсальный алгоритм внутренней сортировки, поскольку он требует очень мало памяти и опережает своих конкурентов по среднему времени выполнения на болыпинстве компьютеров.

Однако в наихудшем случае он может работать очень медленно, Поэтому, если вероятность неслучайных данных достаточно велика, приходится тщательно выбирать разделяющие элементы. Если выбирается медиана из трех элементов (как предлагается в упр. 5.2.2-55), то такое поведение, как в наихудшем случае, становится крайне маловероятным и, кроме того, несколько уменьшается среднее время работы. 8.

Простой выбор. Алгоритм 5.2.35 довольно прост и особенно подходит в случае, когда имеется специальное оборудование для быстрого поиска наименьшего элемента в списке, 9. Пирамвдеяьнея сортировке. Алгоритм 5.2.3Н прн минимальных тре5ованнях к памяти обеспечивает достаточно высокую скорость сортировки: как среднее, так н максимальное время работы примерно вдвое больше среднего времени быстрой сортировки. 10. Слияние списков. Алгоритм 5.2.41 осуществляет сортировку списков, обеспечивая при этом, так же как и алгоритм пирамидальной сортировки, весьма высокую скорость даже в наихудшем случае.

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