Главная » Просмотр файлов » Алгоритмы - построение и анализ

Алгоритмы - построение и анализ (1021735), страница 15

Файл №1021735 Алгоритмы - построение и анализ (Алгоритмы - построение и анализ) 15 страницаАлгоритмы - построение и анализ (1021735) страница 152017-07-10СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

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

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

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

Прибавляя к этой величине слагаемое 2Т (гг/2), соответствующее этапу "покорения*'„получим рекуррентное соотношение для времени работы Т (гь) алгоритма сортировки по методу слияния в наихудшем случае: 0 (1) при гь = 1, 2Т(гг/2) + 0(гг) при гг > 1. (2.1) В главе 4 мы ознакомимся с теоремой, с помощью которой можно показать, что величина Т (гг) представляет собой 6 (гз 1я и), где 1к п обозначает 1кз и.

Поскольку логарифмическая функция растет медленнее, чем линейная, то для достаточно большого количества входных элементов производительность алгоритма сортировки методом слияния, время работы которого равно 0 (ге 1к п), превзойдет производительность алгоритма сортировки методом вставок, время работы которого в наихудшем случае равно 6 (пз). Правда, можно и без упомянутой теоремы интуитивно понять, что решением рекуррентного соотношения (2.1) является выражение Т(п) = 1В (п1к и). Перепишем уравнение (2.1) в таком виде: Т(п) = (2.2) 2Т (гг/2) + сп при и > 1, где константа с обозначает время, которое требуется для решения задачи? размер который равен 1, а также удельное (приходящееся на один элемент) время, требуемое для разделения и сочетанияэ.

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

Принимая во внимание, что обе границы имеют порядок и!й п, делаем вывод, что время работы алгоритма ведет себя, как 6 (и 1я и) . 80 Часть 1. Основы Т(п) Т(п/2) Т(пЩ Т(п/4) Т(л/4) Т(п/4) Т(п/4) в) б) /~ сп/4 сп/4 сп/4 сл/4 -------~ сл 1~ 1~ (~ 1~ с с с с с ... с с --3л сл Всего: сл )б л+ сл Рис. 2.5. Построение дерева рекурсии для уравнения Т (и) = 2Т (гг/2) + сп Процесс решения рекуррентного соотношения (2.2) проиллюстрирован на рис. 2.5. Для удобства предположим, что и равно степени двойки. В части а упомянутого рисунка показано время Т(п), представленное в части б в виде эквивалентного дерева, которое представляет рекуррентное уравнение.

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

Так происходит до тех пор, пока размер задачи не становится равным 1, а время ее выполнения — константе с. Получившееся в результате дерево показано в части г. Дерево состоит из 18 и+ 1 уровней (т.е. его высота равна 18 п), а каждый уровень дает вклад в полное время работы, равный сп. Таким образом, полное время работы алгоритма равно си18п+ сп, что соответствует О (п 18 и). После того как дерево построено, длительности выполнения всех его узлов суммируются по всем уровням.

Полное время выполнения верхнего уровня равно сп, следующий уровень дает вклад, равный с(п/2) + с(п/2) = сп. Ту же величину вклада дают и все последующие уровни. В общем случае уровень г (если вести отсчет сверху) имеет 2' узлов, каждый из которых дает вклад в общее время работы алгоритма, равный с (и/2'), поэтому полное время выполнения всех принадлежащих уровню узлов равно 2'с (и/2') = сп. На нижнем уровне имеется и узлов, каждый из которых дает вклад с, что в сумме дает время, равное сп.

Полное количество уровней дерева на рис. 2.5 равно 18 и+ 1. Это легко понять из неформальных индуктивных рассуждений. В простейшем случае, когда п = 1, имеется всего один уровень. Поскольку 18 1 = О, выражение 18 п+ 1 дает правильное количество уровней. Теперь в качестве индуктивного допущения примем, что количество уровней рекурсивного дерева с 2' узлами равно 18 2'+1 = 1+1 (так как для любого г выполняется соотношение 18 2' = г).

Поскольку мы предположили, что количество входных элементов равняется степени двойки, то теперь нужно рассмотреть случай для 2'+з элементов. Дерево с 2'ч 1 узлами имеет на один уровень больше, чем дерево с 2' узлами, поэтому полное количество уровней равно (г + 1) + 1 = 1й 2ьь1 + 1. Чтобы найти полное время, являющееся решением рекуррентного соотношения (2.2), нужно просто сложить вклады от всех уровней. Всего имеется 18 и+ 1 уровней, каждый из которых выполняется в течение времени сп, так что полное время равно сп (18 п + 1) = сп 18 и + сп. Пренебрегая членами более низких порядков и константой с, в результате получаем О (п!бп). Упражнения 2.3-1. Используя в качестве образца рис.

2.4, проиллюстрируйте работу алгоритма сортировки методом слияний для массива А = (3, 41, 52, 26, 38, 57, 9, 49). Часть 1. Основы 82 2.3-2. Перепишите процедуру Мекол так, чтобы в ней не использовались сиг- нальные значения. Сигналом к остановке должен служить тот факт, что все элементы массива Т, или массива гт скопированы обратно в массив А, после чего в этот массив копируются элементы, оставшиеся в непустом массиве. 2.3-3. Методом математической индукции докажите, что если п равно степени двойки, то решением рекуррентного уравнения 2 при п = 2, 2Т (и/2) + п при п = 2ь, й > 1 является Т(п) = п18п. 2.3-4. Сортировку вставкой можно представить в виде рекурсивной последо- вательности следующим образом. Чтобы отсортировать массив А [1..п], сначала нужно выполнить сортировку массива А [1..п — 1], после чего в этот отсортированный массив помещается элемент А [и].

Запишите рекуррентное уравнение для времени работы этой рекурсивной версии алгоритма сортировки вставкой. 2.3-5. Возвращаясь к задаче поиска (см. упражнение 2.1-3), нетрудно заметить, что если последовательность А отсортирована, то значение среднего элемента этой последовательности можно сравнить с искомым значением о и сразу исключить половину последовательности из дальнейшего рассмотрения. Двоичный (бинарный) поиск (Ьшагу зеагсЬ) — это алгоритм, в котором такая процедура повторяется неоднократно, что всякий раз приводит к уменьшению оставшейся части последовательности в два раза. Запишите псевдокод алгоритма бинарного поиска (в итерационном нлн рекурсивном виде).

Докажите, что время работы этого алгоритма в наихудшем случае возрастает как 6 (18 и). 2.3-6. Обратите внимание, что в цикле иЬйе в строках 5-7 процедуры 1ызпк- трон Войт в разделе 2.1, используется линейный поиск для просмотра (в обратном порядке) отсортированного подмассива А,[1..7' — 1].

Можно ли использовать бинарный поиск (см. упражнение 2.3-5) вместо линейного, чтобы время работы этого алгоритма в наихудшем случае улучшилось и стало равным Э(п18п)? * 2.3-7. Пусть имеется множество о, состоящее из и целых чисел, и отдельное целое число х; необходимо определить, существуют ли во множестве Я два элемента, сумма которых равна х. Разработайте алгоритм решения этой задачи, время работы которого возрастало бы с увеличением п как 9 (и 18 и).

Глава 2. Приступаем к изучению 83 Задачи 2-1. Сортировка вставкой для небольших подмассивов, возникающих при сортировке слиянием Несмотря на то, что с увеличением количества сортируемых элементов время сортировки методом слияний в наихудшем случае растет как 6 (п18п), а время сортировки методом вставок — как 9 (пз), благодаря постоянным множителям для малых и сортировка методом вставок выполняется быстрее. Таким образом, есть смысл испольювать сортировку методом вставок в процессе сортировки методом слияний, когда подзадачи становятся достаточно маленькими. Рассмотрите модификацию алгоритма сортировки, работающего по методу слияний, когда п(М подмассивов длины Й сортируются методом вставок, после чего они объединяются с помощью обычного механизма слияния. Величина к должна быть найдена в процессе решения задачи.

а) Покажите, что п()с подмассивов, в каждом из которых находится Й элементов, в наихудшем случае можно отсортировать по методу вставок за время 9 (пк). б) Покажите, что в наихудшем случае время, требуемое для объединения этих подмассивов, равно О (и 18 (п(И) ). в) Допустим, что время работы модифицированного алгоритма в наихудшем случае равно О (п)с+ п18 (и/)с)). Определите максимальное асимптотическое (в О-обозначениях) значение )с как функцию от п, для которого асимптотическое время работы модифицированного алгоритма равно времени работы стандартного алгоритма сортировки методом слияния.

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

Тип файла
DJVU-файл
Размер
18,3 Mb
Тип материала
Высшее учебное заведение

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

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