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

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

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

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

Сопоставляя уравнения (7.2) и (7.3), получаем: Е[Х] = ,'1 1=1 уии+1 Эту сумму можно оценить, воспользовавшись заменой переменных (Й = 1 — 1) и границей для гармонического ряда (уравнение (А.7)): 2 з з 2 и — 1 и-1 < и-1 = ,'1 0(1кп) = 0(п1яп). и-1 и Е[Х] = ,'1 1=1 3=1+1 (7.4) Таким образом, можно сделать вывод, что при использовании процедуры Клы00м!ве0 РАкт1т101ч математическое ожидание времени работы алгоритма быстрой сортировки различающихся по величине элементов равно 0 (п 1к п).

Упражнения 7.4-1. Покажите, что в рекуррентном соотношении Т(п) = 1пах (Т(д) + Т(п — д — 1)) + 9(п), с<я<и-1 Т(п) = й (п ) . Теперь вычислим вероятность этого события. Перед тем как в множестве Уц будет выбран опорный элемент, все это множество является не разделенным, и любой его элемент с одинаковой вероятностью может стать опорным.

Поскольку всего в этом множестве 1 — г + 1 элемент, а опорные элементы выбираются случайным образом и независимо друг от друга, вероятность того, что какой- либо фиксированный элемент первым будет выбран в качестве опорного, равна 1Я вЂ” г + 1). Таким образом, выполняется следующее соотношение: Часть !!. Сортировка и порядковая статистика 214 7.4-2.

Покажите, что в самом благоприятном случае время работы алгоритма быстрой сортировки равно П 1н !я и). 7.4-3. Покажите, что функция»?з+(и — »7 — 1) на множестве»! = О, 1,...,п — 1 достигает максимума при»7 = О или д = п — 1. 7.4-4. Покажите, что математическое ожидание времени работы процедуры КАноом1гео ЯО1скзонт равно П 1н1ки). 7.4-5.

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

После возврата нз процедуры быстрой сортировки, вызванной на самом высоком уровне, запускается алгоритм сортировки по методу вставок, на вход которого подается весь обрабатываемый массив. На этом процесс сортировки завершается. Докажите, что математическое ожидание времени работы такого алгоритма сортировки равно О 1тй + и 1б (и/1с) ). Как следует выбирать значение 1с, исходя из теоретических и практических соображений? * 7.4-6. Рассмотрим модификацию процедуры РАнт1т1он путем случайного выбора трех элементов массива А и разбиения массива по медиане выбранных элементов (т.е.

по среднему из этих трех элементов). Найдите приближенную величину вероятности того, что в худшем случае разбиение будет произведено в отношении а к 11 — »з), как функцию от а в диапазоне О < »з < 1. Задачи 7-1. Корректность разбиения по Хоару Представленная в этой главе версия процедуры РАкт1т1он не является реализацией первоначально предложенного алгоритма. Ниже приведен исходный алгоритм разбиения, разработанный Хоаром (С.А.К.

Ноаге): НоАкн РАнт!т1ом1А, р, г) 1 я -А[р) 2 㻠— р — 1 3 з -г+1 4 н 'и!!е ткал 5 бо гереаг з + — 7' — 1 Глава 7. Быстрая сортировка 218 нп61 А[1] < х гереаФ 1 — 1+ 1 пп61 А[1] > х !11< 7 Феп Обменять А[а] + А[з] е1ве ге1игп 7' б 7 8 9 10 11 а) Продемонстрируйте, как работает процедура Нолкн Рлкт~тюн с входным массивом А = (13,19,9,5,12,8,7,4, П,2,6,21). Для этого укажите, чему будут равны значения элементов массива и значения вспомогательных переменных после каждой итерации цикла ий11е в строках 4 — 11. В следующих трех заданиях предлагается привести аргументы в пользу корректности процедуры Нолкн Рлкт~тюн.

Докажите следующие утвер- ждения. б) Индексы г и 7' принимают такие значения, что обращение к элементам массива А, находящимся за пределами подмассива А [р..т], никогда не произойдет. в) По завершении процедуры Нолкв Рлкт~т1он возвращается значение 1, такое что р < 7' < т. г) По завершении процедуры Нолкн Рлкт~тюн каждый элемент подмассива А [р..Я не превышает значений каждого элемента подмассива А [7'+ 1..т]. В описанной в разделе 7.1 процедуре Рлкт171он опорный элемент (которым изначально является элемент А [т]) отделяется от двух образованных с его помощью подмассивов.

В процедуре же Нолке Рлкт~т10н, напротив, опорный элемент (которым изначально является элемент А [р]) всегда помещается в один из двух полученных подмассивов: А [р..7] илн А [7' + 1..т]. Поскольку р < 7' < т, это разбиение всегда нетривиально. д) Перепишите процедуру Яоюкзокт таким образом, чтобы в ней использовалась процедура Нолке Рлкт1т10х. 7-2. Альтернативный анализ быстрой сортировки Можно предложить альтернативный анализ рандомнзнрованной быстрой сортировки, в ходе которого внимание сосредотачивается на математическом ожидании времени, которое требуется для выполнения каждого рекурсивного вызова процедуры Яи!скзокт, а не на количестве производимых сравнений. Часть П.

Сортировка и порядковая статистика 216 а) Докажите, что вероятность того, что какой-либо заданный элемент и-элементного массива будет выбран в качестве опорного, равна 1/и. Опираясь на этот факт, определите индикаторную случайную величину Х; = 1(1-й в порядке возрастания элемент выбран опорным) . Какой смысл имеет величина Е [Х;]? б) Пусть Т(п) — случайная величина, обозначающая время работы алгоритма быстрой сортировки и-элементного массива. Докажите, что Е[Т(и)] = Е ~~) Хд(Т(д — 1) + Т (и — д) + О (и)) д=з (7.5) в) Покажите, что уравнение (7.5) можно представить в виде 2 и-1 Е [Т (и)) = — ~ Е [Т (д)) + О (и) .

4=2 (7.6) г) Покажите, что 3 1 2 ~~> Й18Й < — и 18и — — и . 2 8 (7.7) (Указание: разбейте сумму на две части, в одной из которых суммированиепроводитсяпоиндекса)с = 2,3,..., )п(2[ — 1,авдругой— по индексам /с = [и/2],..., и — 1.) д) Покажите с помощью неравенства (7.7), что решение рекуррентного соотношения (7.6) имеет вид Е [Т(п)) = 9 (и 18 п). (Указание: с помощью подстановки покажите, что Е [Т(п)] < оп 18п для достаточно больших п и некоторой положительной константы а.) 7-3. Блуждающая сортировка Два профессора предложили "элегантный" алгоритм сортировки, который выглядит следующим образом: 8тооан 8окт(А, г,у) 1 Ы А[1) > А[7] 2 сйеп Обменять А[а] А[7] 3 11' г+ 1 > 7' 4 слеп гегпгп 5 )с ~ — [(7' — 1+ 1)/3] с Округление в меньшую сторону 6 8тооон 8онт(А, г,у' — )с) ь Первые две трети 7 8тооон 8окт(А,1+ )с,7') с> Последние две трети 8 8тооон 8окт(А, г,у — lс) с> Снова первые две трети Глава 7.

Быстрая сортировка 217 а) Докажите, что если и = 1епдй [А], то процедура Зтооон бокт(А,1, 1епдгй [А]) корректно сортирует входной массив А [1..п]. б) Запишите рекуррентное соотношение для времени работы процедуры Зтооое Зокт и дайте точную асимптотическую границу (в О- обозначениях) этой величины. в) Сравните время работы процедуры Зтооон Зонт в наихудшем случае со временем сортировки вставкой, сортировки слиянием, пирамидальной сортировки и быстрой сортировки. Достойны ли эти профессора своих званий? 7-4. Глубина стека дли быстрой сортировки В описанном в разделе 7.1 алгоритме Оглскзокт содержатся два рекурсивных вызова этого же алгоритма.

После вызова процедуры Рлкптюн полученные в результате правый и левый подмассивы рекурсивно сортируются. Второй рекурсивный вызов процедуры Яо1скзокт на самом деле не является необходимым; его можно избежать с помощью итеративной управляющей структуры. Этот метод, получивший название оконечной рекурсии (1а(! геспгз1оп), автоматически обеспечивается хорошими компиляторами.

Рассмотрите приведенную ниже версию быстрой сортировки, в которой имитируется оконечная рекурсия: Яглскзокт'(А,р,г) 1 зтййер(т 2 бо ~> Разбиение и сортировка левого подмассива 3 д — Рлкт~т1ом(А, р, г) 4 Оо1скзокт'(А, р, д — 1) 5 р< — я+ 1 а) Докажите, что процедура Оо1скзокт'(А,1, 1епдЮ [А]) корректно сортирует входной массив А. Обычно компиляторы выполняют рекурсивные процедуры с помощью стека, содержащего необходимую информацию, в том числе и значения параметров, применяющихся для каждого рекурсивного вызова.

Информация о самом последнем вызове находится на верху стека, а информация о начальном вызове — на его дне. При вызове процедуры информация записывается в стек (роялей), а при ее завершении — выталкивается (рорреб) из него. Поскольку предполагается, что массивы-параметры представлены указателями, при каждом обращении процедуры к стеку передается информация объемом О (1). Глубина стека (з1аск бербз)— это максимальная величина стекового пространства, которая используется в ходе вычисления.

Часть 11. Сортировка и порядковая статистика 218 6) Опишите сценарий, в котором глубина стека, необходимая для обработки процедурой Оглскзокт' п-элементного массива, равна 9 (и). в) Модифицируйте код процедуры Оглскзокт' так, чтобы необходимая для ее работы глубина стека в наихудшем случае была равна О (1йп). Математическое ожидание времени работы алгоритма О (п 18 и) должно при этом остаться неизменным. 7-5. Разбиение по медиане трех элементов Один из способов улучшения процедуры КАмоом~хвоЯглскзокт заключается в том, чтобы производить разбиение по опорному элементу, определенному аккуратнее, чем путем случайного выбора.

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

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

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

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