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

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

Файл №1162189 Т. Кормен, Ч. Лейсерзон, Р. Риверст, К. Штайн - Алгоритмы. Построение и анализ (2013) (Т. Кормен, Ч. Лейсерзон, Р. Риверст, К. Штайн - Алгоритмы. Построение и анализ (2013)) 44 страницаТ. Кормен, Ч. Лейсерзон, Р. Риверст, К. Штайн - Алгоритмы. Построение и анализ (2013) (1162189) страница 442019-09-19СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

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

В общем случае ситуация такая. Поскольку предполагается, что значения всех элементов различаются, при выборе в качестве опорного элемента такого л, что гч < х < лз, элементы л, и л, впоследствии сравниваться не будут. С другой стороны, если в качестве опорного элемент г, выбран до любого другого элемента Я,!, то он будет сравниваться с каждым элементом множества Я,!, кроме Часть П. Сортировка и иорядковаи статистика Рг(з, сравнивается с з ) = Рг(з, или зу — первый опорный элемент, выбранный из Яг '1 = Рг (з, — первый опорный элемент, выбранный и г,,> + Рг (з, — первый опорный элемент, выбранный ° г„) 1 1 + 1+111+1 2 1 — 1+1 (7.3) Вторая строка в приведенной выше цепочке равенств следует из того, что рассматриваемые события взаимоисключающие.

Комбинируя уравнения (7.2) и (7.3), получаем Е[Х! = ~ Эту сумму можно оценить, если воспользоваться заменой переменных (Й = 7 — 1) и границей для гармонического ряда (уравнение (А,7)): и — 1 Е~Х] = ~ г=1 2 ,1 — 1+ 1 у=г+1 2 и-.1 (,"' 2 1=1 себя самого. Аналогичное утверждение можно сделать по поводу элемента с . В рассматриваемом примере значения 7 и 9 сравниваются, поскольку элемент 7— первый нз множества Ут з, выбранный в качестве опорного. По той же причине (поскольку элемент 7 — первый из множества с за, выбранный в качестве опорного) элементы 2 и 9 сравниваться не будут. Таким образом, элементы гч и к, сравниваются тогда н только тогда, когда первым в роли опорного в множестве У,у выбран один из них. Теперь вычислим вероятность этого события. Перед тем как в множестве Я, будет выбран опорный элемент, все это множество является не разделенным, и любой его элемент с одинаковой вероятностью может стать опорным.

Поскольку всего в этом множестве 1 — 1+ 1 элемент, а опорные элементы выбираются случайным образом и независимо один от другого, вероятность того, что какой- либо фиксированный элемент первым будет выбран в качестве опорного, равна 1/Ц вЂ” г + 1). Таким образом, мы имеем Гвава 7. БыстГкт сортировка и — ! 0(1к п) в=1 = 0(п1ки) . (7.4) Таким образом, можно сделать вывод, что при использовании процедуры Клноом1кпо-Рлкт1т!ом математическое ожидание времени работы алгоритма быстрой сортировки различающихся по величине элементов равно 0(п 1я п). Упражнения 7.4.1 Покажите, что в рекуррентном соотношении Т(и) = !пах (Т(с7) + Т(п — !7 — 1)) + В(п), о<я< -! Т(п) = Й(из).

7.4.2 Покажите, что время работы быстрой сортировки в наилучшем случае равно Й(п!к и). 7.4.3 Покажите, что выражение !7~ + (и — !7 — 1) достигает максимума на множестве значений !? = О, 1,..., п — 1, когда !? = О или !7 = и — 1. 7.4.4 Покажите, что ожидаемое время работы процедуры КАмоом!еео-ЯО1сквокт равно Й(п1кп). 7.4.5 На практике время работы алгоритма быстрой сортировки можно улучшить, воспользовавшись тем, что алгоритм сортировки по методу вставок быстро работает для "почти" отсортированных входных последовательностей. Для этого можно поступить следующим образом.

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

Сортировка и порядковая статистика 2!4 ся по медиане выбранных элементов (т.е. по среднему из этих трех элементов). Найдите приближенную величину вероятности того, что в худшем случае разбиение будет произведено в отношении а к (1 — сь), как функцию от ск в диапазоне 0 < о < 1. Задачи 7.1. Корректность разбиения ио Хвору Представленная в этой главе версия процедуры РАКТ!Т10М не является реализацией первоначально предложенного алгоритма. Ниже приведен исходный алгоритм разбиения, разработанный Ч.Э.Р. Хоаром (С.А.К. Ноаге).

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

В следующих трех заданиях предлагается привести аргументы в пользу корректности процедуры НОАке-РАкт1тю1ч. В предположении, что подмассив А[р .. т[ содержит как минимум два элемента, докажите следующие утверждения. б. Индексы 1 и 2' принимают такие значения, что никогда не произойдет обращение к элементам массива А, находящимся за пределами подмассива А[р .. т[. в. По завершении процедуры НОАке-РАкт!тюм она возвращает значение 2, такое,чтор<2 <т. а По завершении процедуры НОАке-РАкт1т101ч каждый элемент подмассива А[р., 1] не превышает значений каждого элемента подмассива А[2 + 1 .. т1.

Глава 7. Ьистраа сортировка 215 В описанной в разделе 7.1 процедуре Рлкт1тюы опорный элемент (которым изначально является элемент А[г]) отделяется от двух образованных с его помощью лодмассивов. В процедуре же Нолкк-Рлкт1тюм, напротив, опорный элемент (которым изначально является элемент А[р]) всегда помещается в один из двух полученных подмассивов: А[р..5] или А[7' + 1..

г]. Поскольку р < 5 < г, это разбиение всегда нетривиально. д. Перепишите процедуру Я151скзокт таким образом, чтобы в ней использовалась процедура Нолкк-Рлкт1тюм. 7.2. Быстрая сортировка с равными элементами Анализ ожидаемого времени работы рандомизированной быстрой сортировки в разделе 7.4.2 предполагает, что все значения элементов различны. В данной задаче мы рассмотрим, что произойдет в противном случае. в. Предположим, что значения всех элементов одинаковы.

Каким будет время работы рандомизированной быстрой сортировки в этом случае? б. Процедура Рлкт1тюм возвращает индекс д, такой, что каждый элемент А[р .. д- Ц не превышает А[д], а каждый элемент А[ц+1 .. г] больше А[д]. Модифицируйте процедуру Рлкт171оы таким образом, чтобы получить процедуру Рлкт1т1ом'(А,р, г), которая переставляет элементы А[р .. г] и возвращает два индекса д и 1, где р < д < 1 < г, такие, что все элементы А[д .. 1] равны; каждый элемент А[р ., д — 1] меньше А[д]; каждый элемент А[1 + 1 ..

г] больше А[у]. Как и процедура Рлкт1тюм, ваша процедура Рлкт1тюм' должна иметь время работы Й(г — Р). в. Модифицируйте процедуру КЛМООМ12КО-РЛКт1тЮЫ так, чтобы она вызывала процедуру Рлкт1т1ом', и назовите новую процедуру именем Кл1чоом1ккоРлкт1тюм'. Затем модифицируйте процедуру Я151скзокт таким образом, чтобы, в свою очередь, получить процедуру Я151скзокт'(А, р, г), которая вызывает Кл1чоом1кко-Рлкт1тюм' и рекурсивно работает только с теми частями, элементы которых не равны один другому.

а Каким образом процедура Яо1скзокт' позволяет изменить анализ из разде- ла 7.4.2, чтобы избежать предположения о том, что все элементы различны? 7.3. Альтернативный анализ быстрой сортировки Можно предложить альтернативный анализ рандомизированной быстрой сортировки, в ходе которого внимание сосредоточивается на математическом ожидании времени, которое требуется для выполнения каждого рекурсивного вызова процедуры Яо1скзокт, а не на количестве производимых сравнений. Часть П.

Сортировка и яорядковая статистика Лб сь Докажите, что вероятность того, что какой-либо заданный элемент п-элементного массива будет выбран в качестве опорного, равна 1/п. На основании этого факта определите индикаторную случайную величину Х, = 1(1-й в порядке возрастания элемент выбран опорным) Что собой представляет величина Е [Х;]? б. Пусть Т(п) — случайная величина, обозначающая время работы быстрой сортировки п-элементного массива. Докажите, что Е [Т(п)] = Е 1 Хо (Т(д — 1) + Т(п — а) + 9(п)) . (7.5) 1д=1 в. Покажите, что уравнение (7.5) можно представить в виде 2 и — 1 Е [Т(п)] = — ~~~ Е [Т(о)] + 9(п) . я=2 (7.6) г. Покажите, что 2 1 2 )с18)с < — и 1йп — — п 2 8 (7.7) (Указание; разбейте сумму на две части, в одной из которых суммирование проводится по индексам к = 2, 3,..., [п/2] — 1, а в другой — по индексам )с = [п/2],...,и — 1.) 7.4.

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

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

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

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