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

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

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

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

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

За каким количеством стопок перфокарт нужно будет следить оператору в наихудшем случае? Часть РЕ Сортировка и порядковая статистика 8.4. Карманная сортировка В случае карманной сортировки (Ьпс(се1 зои) предполагается, что входные данные подчиняются равномерному закону распределения; время работы в среднем случае при этом оказывается равным 0(и). Карманная сортировка, как и сортировка подсчетом, работает быстрее, чем алгоритмы сортировки сравнением. Это происходит благодаря определенным предположениям о входных данных. Если при сортировке методом подсчета предполагается, что входные данные состоят из целых чисел, принадлежащих небольшому интервалу, то при карманной сортировке предполагается, что входные числа генерируются случайным процессом и равномерно распределены в интервале [0,1) (определение равномерного распределения можно найти в разделе В.2).

Карманная сортировка разбивает интервал [О, 1) на и одинаковых интервалов, или карманов (Ьис(се1з), а затем распределяет по этим карманам и входных чисел. Поскольку последние равномерно распределены в интервале [0,1), мы предполагаем, что в каждый из карманов попадет не очень много элементов, Чтобы получить выходную последовательность, нужно просто выполнить сортировку чисел в каждом кармане, а затем последовательно перечислить элементы каждого кармана.

При составлении кода карманной сортировки предполагается, что на вход подается массив А, состоящий из и элементов, и что величина каждого принадлежащего массиву элемента А[в] удовлетворяет неравенству 0 < А[1] < 1. Для работы нам понадобится вспомогательный массив связанных списков (карманов) В[0 ..

и — 1]; предполагается, что в нашем распоряжении имеется механизм поддержки таких списков. (Реализация основных операций при работе со связанным списком описана в разделе 10.2.) ВОскет-БОкт(А) 1 и = А.1еидй 2 Пусть В[0 ., и — 1] — новый массив 3 хогг'=Отои — 1 4 Сделать В[1] пустым списком 5 хогг' = 1 Гоп б Вставить А[(] в список В[[иА[з]]] 7 Гога'=Огои — 1 8 Отсортировать список В[в] сортировкой вставкой 9 Соединить списки В[0], В[1],..., В[и — 1] в указанном порядке На рис.

8.4 показана работа карманной сортировки с входным массивом из десяти чисел. Чтобы понять, как работает этот алгоритм, рассмотрим два элемента — А[1] и А[1]. Без потери общности можно предположить, что А[1] < А[7]. Поскольку [иА[г]] < [иА[1]], элемент А[1] помещается либо в тот же карман, что и элемент А[7], либо в карман с меньшим индексом. В первом случае элементы А[1] Гласа Д Сортировке за лииейиае ерема 451 Рис.

8.4. Работа процедуры Воскят-Бокт дла и = 10. (а) Входной массив А[1 .. 10]. (9) Массив В[0 .. 9] отсортированных списков (карманов) после строки а алгоритма. В кармане з хранатсв знииниа ю полуоткрыто»о интервала [(/10, (4+ 1)/10). Отсортированные выходные данные представлыат собой изнкатеныпно списков В[0],В[1],..., В[9] в указанном порядке. и А[)] располагаются в нужном порядке благодаря циклу вог в строках 7 и 8. Если же эти элементы попадут в разные карманы, то они разместятся в правильном порядке после выполнения строки 9.

Таким образом, карманная сортировка работает корректно. Чтобы проанализировать время работы адгоритма, заметим, что в наихудшем случае для выполнения всех его строк, кроме строки 8, требуется время 0[п). Остается просуммировать полное время, которое потребуется для п вызовов алгоритма сортировки вставкой (строка 8). Чтобы оценить стоимость этих вызовов, введем случайную величину и,, обозначающую колнчеспю элементов, попавших в карман В[3[.

Поскольку время работы апгорнтма сортировки вставкой является квадратичной функцией от количества входных элементов (см. раздел 2.2), время работы алгоритма карманной сортировки равно п — 1 Т[п) = тт[п) + ~~» О[п4) . Теперь проанализируем время работы карманной сортировки в среднем случае, вычисляя математическое ожидание времени работы, где усреднение производится по входному распределению. Применяя операцию математического ожи- (,79[ Ч) 7~ рот» 3 (Эй 4,'Дб[ 5 ',72,' б»94,' в»((т ю [бй[ (41 В, 1.л а»,;(» '.Ц ь,!;фъ,',:", „»'1"»* .'.» :=".

- ~хэ)»[' —:- ~'.~~"~Г.-~Ч6'.~': 3:-:,+ 4.39[,у": 4 [л(» б,.'::4» - -з-»да(лл ) . „'-'-",--;.т";:--..--:„-а»:, -> в [л»] [:Л в»,»'-';- изр41'~;":.,~ (б) Часть П. Сортировка и порядковая статистика гз2 дания к обеим частям н используя ее линейность, получаем и-1 Е [Т(п)] = Е ко(п) + ~~ 0(пз) г=о = 9(п) + ~ ~Е [0(пд)] (из линейности математического ожидания) =о и — 1 = 9(п) + ~ 0 (Е [п~] ) (согласно (В.22)) . (8.1) г=с Мы утверждаем, что (8.2) К, = 1(АЫ попадает в карман 1) Следовательно, п,=~~г Х, 1=1 Чтобы вычислить величину Е ]пи], раскроем квадрат и перегруппируем слагае- мые: Е [пк] = Е ~~г Хз Е [Хзу] + ~~ ~~г Е [Хз.Хгь], (8.3) \<1<п 1<1 <п Ьфз где последнее равенство следует из линейности математического ожидания.

Отдельно вычислим обе суммы. Индикаторная случайная величина Х; равна 1 с ве- для 1 = О, 1,..., п — 1. Не удивительно, что каждому 1-му карману соответствует одна и та же величина Е [п~], поскольку все злементы входного массива могут попасть в любой карман с равной вероятностью.

Чтобы доказать уравнение (8.2), определим для каждого 1 = О, 1,..., и — 1 и 1 = 1, 2,..., и индикаторную случайную величину Глава В. Сортировка за лиит1иое время 233 роятностью 1/и и 0 — в противном случае, поэтому получаем Е(Хг~ =1' -'+О' (1 — -') 1 Прн и ф 3 величины Х; и Хвь независимы, а следовательно, Е[Х11Хеь) = Е(Х1 Д Е(Х1ь) 1 1 п п 1 Подставив эти величины в уравнение (8.3), получим Е [п~~ = ~~~ — + г 1 1=1 1<1<о1<ь<о Ьфэ 1 1 = п — + и(и — 1) и пг и — 1 =1+ и 1 =2 — —, п что доказывает уравнение (8.2). Используя это ожидаемое значение в уравнении (8.1), приходим к выводу, что время работы алгоритма карманной сортировки в среднем случае равно 19(п) + и 0(2 — 1/и) = 0(п).

Такая зависимость может наблюдаться даже в том случае, когда входные элементы не подчиняются закону равномерного распределения. Если входные элементы обладают тем свойством, что сумма возведенных в квадрат размеров карманов линейно зависит от количества входных элементов, уравнение (8.1) утверждает, что карманная сортировка этих данных выполняется в течение времени, линейно зависящего от количества данных.

Упражнении 8.4.1 Используя рис.8.4 в качестве образца, проиллюстрнруйте работу алгоритма В13сккт-Вокт иад массивом А = (.79,.13,.16,.64,.39,.29,.89,.53,.71,.42). 8.4.г Поясните, почему время работы карманной сортировки в наихудшем случае составляет 19(пг).

Какое простое изменение следует внести в этот алгоритм, чтобы, Часть СЬ Сортировка к корядковая статистика сохранив линейное время работы в среднем случае, добиться в наихудшем случае времени работы 0(и 1к и)? 8.4.3 Пусть Х вЂ” случайная величина, равная количеству выпадений орла при двух бросках правильной монеты. Чему равно Е [Хз[? Ез [Х[? 8.4.4 * Даны и точек в единичном круге, р, = (х;, у,), такие, что О < хз + у~ < 1 для 1 = 1, 2,..., и.

Предположим, что эти точки равномерно распределены, т.е. вероятность найти точку в любой области круга пропорциональна плошади этой области. Разработайте алгоритм с временем работы 9(п) в среднем случае для сортировки и точек по их расстояниям б, = ~1?х~+ уз от центра. (Указание: спроектируйте размеры карманов в Вцскет-Яокт, которые отражали бы равномерность распределения точек в единичном круге.) 8.4.5 * Функция распределения вероятности Р(х) случайной величины Х определяется как Р(х) = Рг (Х < х). Предположим, что у нас есть список из п случайных величин Хы Хз,..., Х„с непрерывной функцией распределения вероятности Р, вычислимой за время 0(1). Разработайте алгоритм, сортируюший этот список за линейное время в среднем случае.

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

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

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