Главная » Все файлы » Просмотр файлов из архивов » Файлы формата DJVU » Т. Кормен, Ч. Лейсерзон, Р. Риверст, К. Штайн - Алгоритмы. Построение и анализ (2013)

Т. Кормен, Ч. Лейсерзон, Р. Риверст, К. Штайн - Алгоритмы. Построение и анализ (2013), страница 12

DJVU-файл Т. Кормен, Ч. Лейсерзон, Р. Риверст, К. Штайн - Алгоритмы. Построение и анализ (2013), страница 12 Методы дискретной оптимизации (3258): Книга - 8 семестрТ. Кормен, Ч. Лейсерзон, Р. Риверст, К. Штайн - Алгоритмы. Построение и анализ (2013): Методы дискретной оптимизации - DJVU, страница 12 (3258) - Сту2019-09-19СтудИзба

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

DJVU-файл из архива "Т. Кормен, Ч. Лейсерзон, Р. Риверст, К. Штайн - Алгоритмы. Построение и анализ (2013)", который расположен в категории "". Всё это находится в предмете "методы дискретной оптимизации" из 8 семестр, которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .

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

Распознанный текст из DJVU-файла, 12 - страница

т). Мы создаем массивы Е и В (" левый" и "правый'*) с длинами п1+ 1 и пз + 1 соответственно в строке 3; дополнительная ячейка в каждом массиве будут содержать ограничитель. Цикл Гог в строках 4 и 5 копирует подмассив А[р., д] в Г [1., п1), а цикл Гог в строках 6 и 7 копирует подмассив А[о + 1., т) в ГГ[! .. пз). Строки 8 и 9 помещают ограничители в последние ячейки Г и ГГ. Строки 10 — 17, проиллюстрированные на рис.2.3, выполняют т — р+ 1 базовый шаг, сохраняющий инвариант цикла. В начале каждой итерации цикла Гог в строках 12 — 17 подмассив А[р .. !с — Ц содержит /с — р наименьших элементов 1[1 ..

п1 + Ц Глава 2 Приступали к изучению и В[1 .. па+1] в отсортированном порядке. Кроме того, Г [т] и ВЦ являются наименьшими элементами соответствующих массивов, которые еще не были скопированы назад в А. Необходимо показать, что этот инвариант цикла соблюдается перед первой итерацией рассматриваемого цикла Гог в строках 12-17, что каждая итерация цикла его сохраняет и что с его помощью можно продемонстрировать корректность алгоритма, когда цикл заканчивает свою работу, Инициализации. Перед первой итерацией цикла к = р, так что подмассив А [р..тс — 1] пуст, Он содержит )е — р = О наименьших элементов массивов Х, и В, а поскольку Г = 7' = 1, элементы Ь [Г] и В Ц вЂ” наименьшие элементы массивов Г, и В, не сюпированные обратно в массив А. Сохранение. Чтобы убедиться, что инвариант цикла сохраняется после каждой итерации, сначала предположим, что Г [1] < Щ.

Тогда Г [т] — наименьший элемент, пока еще не скопированный в массив А. Поскольку в подмассиве А[р .. )б — 1] содержится к — р наименьших элементов, после юпирования в строке 14 Е[з] в А[к] в подмассиве А[р .. )с] будет содержаться lг — р+ 1 наименьших элементов. В результате увеличения параметра )с цикла Гог и значения переменной з' (строка 15), инвариант цикла восстанавливается перед следующей итерацией. Если же выполняется неравенство Г [з] > В[7], то в строках 16 и 17 выполняются соответствующие действия, в ходе которых также сохраняется инвариант цикла. Завершение.

Алгоритм завершается, когда lе = г + 1. В соответствии с инвариантом цикла подмассив А[р.. к — 1] (т.е. подмассив А[р.. г]) содержит lс — р = т — р+1 наименьших элементов массивов Г[1 .. пг+1] и В[1.. па+1] в отсортированном порядке. Суммарное юличество элементов в массивах Ь и В равно пт + пз + 2 = г — р+ 3. Все онн, кроме двух самых больших, сюпированы обратно в массив А, а два оставшихся элемента являются сигнальными. Чтобы убедиться, что время работы процедуры Мпксп равно 9(п), где и = г — р+ 1, заметим, что каждая из строк 1-3 и 8-11 выполняется за константное время; длительность циклов Гог в строках 4-7 равна 9(пг+ пз) = 9(п),б а в цикле Гог в строках 12 — 17 выполняются п итераций, на каждую из которых затрачивается константное время.

Теперь процедуру Меийп можно использовать в качестве подпрограммы в алгоритме сортировки слиянием. Процедура Мцксп-Бокт(А, р, г) выполняет сортировку элементов в подмассиве А[р..г]. Если справедливо неравенство р > г, то в этом подмассиве содержится не более одного элемента, и, таким образом, он является уже отсортированным.

В противном случае производится разбиение, ЯВ главе 3 будет показано, как формально интерпретируются уралнения с Э-обозначениями. )хааа 2. Иристуваеи киэуиеиию 57 э т )! ! (э )4 ! )и (1 (я) Э 5 (О Н( Ы (! (7) )э Ц А ... !' ) ! 2 ! 2 , '3 (, А э~~2$~~~!фЯ э 4 э а 5 ~ 7 1, ° ! л )1)22!Я~~~ 6 ! ! 7 (с) х ч ((! (! Ц (э !' !" э( (5 А ...

~1.'! и ~.2 ЯА )! 5;. б 1~~' ! " " -! 5 е т(Я' Дф~ 7;:,-:: я М~~Н~Р,:,;. - ( ! эо (! !' )! ы А ...: );" 2: э *' 3 ( А ( 5 ф~~!ф'~ (э) 5 !, и )! (э г! (4 (э (6 г! А ... ', ) ! 2 1 2 ) 3 ) 4 ! 5 !('б ) 7 ! э э (и) вательности длиной 2, затем — попарное объединение двухзлементных последовательностей в отсортированные последовательности длиной 4 и так до тех пор, пока не будут получены две последовательности, состоящие из и/2 элементов, которые объединяются в конечную отсортированную последовательность длиной т(.

2З.2. Анализ алгоритмов, основанных иа принципе "разделяй и властвуй" Когда алгоритм рекурсивно вызывает сам себя, зачастую время его работы можно описать с помощью рекурренаннвго уравнения 1или рекурренавносанн), которое выражает полное время, требующееся для решения всей задачи размером и, через время решения задач для меньших входных данных. Затем можно прибегнуть к соответствующему математическому аппарату для решения рекуррентности и получить границы производительности алгоритма.

Получение рекуррентного соотношения для времени работы алгоритма, основанного на принципе "разделяй и властвуй", базируется на трех этапах, соответствующих парадигме этого принципа. Как и ранее, обозначим через Т(п) время решения задачи, размер которой равен ц. Если размер задачи достаточно мал, свяжем, и < с для некоторой заранее известной константы с, то задача решается непосредственно в течение определенного константного времени, которое мы обозначим через сэ(1). Предположим, что наша задача делится на и подзадач, Рнс. 2З (продолжение).

(н) Массивы и индексы прн эавергпеннн пропедуры. В этот момент подмасснв А(9 .. 16! отсоргнроаан, а два ограничителя в Ь н )( яввяются едннстаеннымн элементами в этих массивах, которые не были скопированы в А. 5о 'тлеть й Ослаем Отсортнрованная последовательность ~ '1,.:,с 2'': ~" 2 .. '::3".,' 4'' .' 5 . т "6'" -'-'7'- ') Слияние ! 2 - '4'.::,";5";:,:-:,7' Слияние ~ 4.".. с ~ ~ /'-А ГЫ ф' (.~':~ ~Я );1'" .(з 1, ~2 ~ Я~ Исходная последовательность Рнс. 2.4.

Процесс сортнрован слняннем массива А = (б, 2, 4, 7, 1, 3, 2, 6). Длины псдлежмцнх слиянию стсортнрованных последовательностей возрастают в ходе работы ааторнтма. объем каждой из которых равен 1/Ь от объема исходной задачи. (В алгоритме сортировки методом слияния числа а и Ь были равны 2, однако нам предстоит ознакомиться со многими алгоритмами разбиения, в которых а ф Ь.) Для решения подзадачи размером и/Ь требуется время Т(п/Ь), а лля решения а таких подзадач требуется время аТ(п/Ь). Если разбиение задачи на вспомогательные подзадачи происходит за время Р(п), а объединение решений подзадач в решение исходной задачи — в течение времени С(п), то мы получим следующее рекуррентное соотношение: 9 (Ц, если п < с, аТ(п/Ь) + Р(п) + С(п) в противном случае .

В главе 4 рассмотрим методы решения рекуррентных уравнений такого вида. Анализ алгоритма сортировки слиянием Хотя псевдокод Микпи-Боит корректно работает для нечетного количества сортируемых элементов, анализ рекуррентного уравнения упрощается, если количество элементов в исходной задаче представляет собой степень двойки.

В этом случае на каждом шаге деления будут получены две подпоследовательности, размер которых точно равен и/2. В главе 4 будет показано, что это предположение не влияет на порядок роста, полученный в результате решения рекуррентного уравнения. Чтобы получить рекуррентное уравнение для верхней оценки времени работы Т(п) алгоритма, выполняющего сортировку и чисел методом слияния, будем рассуждать следующим образом. Сортировка одного элемента методом слияния Гланэ 2. Приступаем к изучению 59 выполняется за константное время. Если п ) 1, время работы распределяется следующим образом. Разйелсние.

В ходе разбиения определяется, где находится средина подмассива. Зта операция выполняется за константное время, поэтому В(а) = ту(1). Властвование. Рекурсивно решаются две подзадачи, размер каждой из которых составляет и/2. Время решения этих подзадач равно 2Т(п/2). Комбинирование. Как уже упоминалось, процедура МЕККЕ при работе с и-эле- ментным подмассивом выполняЕтся за время сэ(п), так что С(п) = 9(п). Складывая функции Р(п) и С(п) для анализа алгоритма сортировки слиянием, мы складываем функции, которые представляют собой сэ(п) и сэ(1).

Зта сумма является линейной функцией от и, т.е. сэ(п). Добавление ее к члену 2Т(п/2) из шага "Властвование" дает следующее рекуррентное соотношение для времени работы сортировки слиянием в наихудшем случае: с э(1), если п = 1, Т(п) = 2Т(п/2) + сэ(п), если и > 1 . (2.1) В главе 4 вы познакомитесь с теоремой, которую можно использовать для того, чтобы показать, что Т(п) представляет собой ту(п 1я и), где 1к и означает 1окз и. Поскольку логарифмическая функция растет медленнее любой линейной функции, для достаточно больших входных данных сортировка слиянием со временем работы ст(п 1й и) превзойдет в наихудшем случае сортировку вставкой, время работы которой равно ~Э(пз). Конечно, можно и без упомянутой теоремы интуитивно понять, почему решением рекуррентного соотношения (2.1) является выражение Т(п) = 9(п 1я и).

Давайте перепишем рекуррентное соотношение (2.1) в виде с , если п = 1, 2Т(п/2) + сп, если и ) 1, (2.2) зомаловероятна, чтобы одна и та же константа представлвла и время, необходимое для решения задачи, размер мпорый равен ц н приходящееся на один элемент время, в течение ноторопэ выполняютсв этапы разбиения и обьединення. Чтобы обойти эту проблему, достаточно предположизь, что с — максимальный нз перечисленных промежупюв времени. В таком случае мы получим верхнюю эрвницу времени работы алгоритма Если же в качестве с выбрать наименьший из всех перечисленных лромежупюв времени, то в реомьтате решения рекуррентнопэ стютношенил можно получить нижнюю зраницу времени работы алторитма.

Принимая во внимание, чю обе границы имени порядок п!й и, делаем вывод, что време работы влторнтма ведет себя, как 91п!ли). где константа с обозначает время, которое требуется для решения задачи, размер который равен 1, а также удельное (приходящееся на один элемент) время, требуемое для разделения и комбинирования.'с На рис. 2.5 показано решение рекуррентного соотношения (2.2).

Для удобства мы считаем, что п представляет собой точную степень 2. В части (а) рисунка бО Чаешь / Ословы Т(л) й т(лд Т(л/2) Т(л/4) Т(л/4) Т(л/4) Т(л/4) (а) (а) (б ) сл Г' слй й й сл/4 сл/4 сл/4 сл/4 ~ сл с с )ь сл с с с с с Всепк сл 1б л + сл (г) Рнщ 2.5. Построение дерева рекурсии для рекуррентного соотношения Т(п) = 2Т(п/2) + сп.

В части (а) показано время Т(п), которое постепенно раскрывается в частях (б)-(г), образуя дерево рекурсии. Полностью раскрьпое дерево в части (г) имеет 1б п + 1 уровней (т.е, его высота, как и указано, равна )й п), а вклад каидого уровня в стоимость равен сп. Таким образом, общая стоимость равна сп 1б п + сп, что представляет собой ст(п 1б п). 6! Глава 2. Приетуааеи к изучению показано время Т(п), которое в части (б) представлено в виде эквивалентного дерева, юторое представляет рекуррентное уравнение. Корнем дерева является член сп (стоимость на верхнем уровня рекурсии), и от него идут два поддерева, представляющие меньшие рекуррентности Т(п/2). В части (в) показан очередной шаг рекурсии, состоящий в раскрытии Т(п/2).

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