Главная » Просмотр файлов » Д. Кнут - Искусство программирования том 3 (2-е издание) - 2001 (Часть 1)

Д. Кнут - Искусство программирования том 3 (2-е издание) - 2001 (Часть 1) (1119456), страница 49

Файл №1119456 Д. Кнут - Искусство программирования том 3 (2-е издание) - 2001 (Часть 1) (Д. Кнут - Искусство программирования том 3 (2-е издание) - 2001 (Часть 1)) 49 страницаД. Кнут - Искусство программирования том 3 (2-е издание) - 2001 (Часть 1) (1119456) страница 492019-05-09СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

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

Сложите эти две стопки и поверните их лицевой стороной вверх. Колода будет рассортирована. Докажите, что приведенную выше последовательность карт нельзя рассортировать в порядке йбмеамил К 2 1 ... 2 А от верхней карты к нижней за два просмотра, даже если разрешено раскладывать карты в три стопки. (Сдавать карты нужно всегда сверху колоды, поворачивая их рубашкой вверх. На рисунке верхняя карта колоды изображена справа, а нижняя — слева.) 1Ь, )Мйб) Рассмотрите задачу из упр. 14 для случая, когда карты раздаютса лицевой стороной вверх, а не вниз. Таким образом, один просмотр можно потратить на преобразование возрастающего порядка в убывающий. Сколько нужно просмотров? э 16. (26) Разработайте алгоритм сортировки строк оп ..., о, состоящих из тп букв в лексикографическом порядке. Суммарное время выполнения этого. алгоритма должно быть порядка О(гп+ и+ Х), где М = )о.(+. + )о ( — суммарная длина всех строк, 17.

)15) Почему в двухуровневом методе сортировки, предложенном Тамминеном (см. теорему Т), метод, аналогичный алгоритму Мак-Ларена, используется на втором и не используется на первом уровне? 1й. (НАзЯ6) ДоквжитетеоремуТ. Указание. Сначалапокажите,чтоалгоритм Мак-Ларена действительно выполняет в среднем О(В1т') операций, если его применять по отношению к независимым случайным ключам, для которых функция плотности вероятностей удовлетворяет условию г(к) < В при 0 < л С 1. Для сортировки корней и слов нам понадобится 1100 ящиков и лотков для форм, — ДМСОРДйк В. ВИГРАМ (ВЕОЙВЕ Ч. ФЛВйАМ) (1643) 5.3.

ОПТИМАЛЬНАЯ СОРТИРОВКА Ткпкгь, когда мы проанализировали множество методов внутренней сортировки, пришло время обратиться к более общему вопросу: какой метпод енутпренней соршироеки наилучший? Существует ли такой верхний предел скорости сортировки, которого бы не мог достичь нн один программист, квк бы искусен он ни был? Разумеется, не сув4встлеуетп наилучшего возможного способа сортировки; мы должны точно определить, что понимать под словом "наилучший", но не существует наилучшего возможного способа определения слова "наилучший". Аналогичную проблему, связанную с оптимальностью алгоритмов, мы обсуждали в разделах 4.3.3, 4.6.3 и 4.б.4, в которых рассматривались умножение с повышенной точностью н вычисление полиномов. В каждом случае, для того чтобы задача была поставлена в терминах конкретных математических структур, необходимо было сформулировать довольно простое определение "наилучшего нз возможных" алгоритма. И в каждом случае перед нами вставали интереснейшие проблемы, настолько сложные, что они до сих пор полностью не решены.

Так же обстоит дело и с сортировкой: были получены некоторые интересные результаты, но осталось еще много интригующих вопросов, на которые до снх пор нет ответов. Изучение внутреннего механизма методов сортировки обычно бьшо направлено на минимизацию числа сравнений ключей прн сортировке п элементов или слиянии т элементов с я элементами, или выборе Г-го наибольшего элемента из неупорядоченного набора п элементов. В разделах 5.3.1-5.3.3 эти вопросы обсуждаются для общего случая; в разделе 5.3.4 рассматриваются аналогичные вопросы с интересным ограничением: схема (структура) сравнений должна быть, по сути, заранее фиксированной.

Другие интересные теоретические вопросы, связанные с оптимальной сортировкой, можно найти в упражнениях к разделу 5.3.4 и в разделах 5.4.4, 5.4,8 и 5.4.9, в которых анализируется внешняя сортировка. Как только появится аналитическая машине. Онв, беэусловно, определит дальнейший путь развития науки. Всякий рээ, когда с ее помощью будет найден какой-либо результат, возникнет вопоос: "Существует ли метод вычислений, которым можно получить на этой машине тот же результат, но эатоатив минимум времени?".

— ЧАРЛЬЗ БЭББИДЖ О864) $.3.1. Сортировка с минимальным числом сравнений Очевидно, минимальное число сравнений ключей, необходимое для сортировки и элементов, равно нулю, поскольку, как мы видели, существуют методы поразрядной сортировки, в которых сравнения вообще не выполнявэтся. В самом деле, можно разработать ИХХ-программы, способные сортировать и, тем не менее, не содержащие ни одной команды условного перехода! (См, упр. 5 — 8 в начале этой главы.) 54ы также встречались с несколькими методами сортировки, которые. по сути, были основаны на сравнении ключей, но время выполнения которых на деле определялось другими факторами, такими как перезапись данных, вспомогательные операции и т.

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

Для простоты мы также ограничимся случаем раэличнмя ключей, а это значит, что при любом сравнении ключей К, и Кз возможны лишь два исхода; либо К; < Ку, либо К, > Ку. (Распространение результатов такого анализа на общий случай, когда допускаются равные ключи, приводится в упр. 3-12.) Ограничения на время выполнения в худшем случае рассматрззваюгсл в работах Ргейззап„Ж!!!ахд, Х Сошрнгег н 5уэа 5сй 47 (1993)., 424-436, Веп-Ашгаш, Са))(,,7. Ссипр.

5уэь 5с!. 54 (1997), 345-370 и Т!зогпр, 5ОПА 9 (199$), 550 — 555. Возьнзжны и другие эквивалентные варианты постановки задачи сортировки посредством сравнений. Если есть и грузов и весы с двумя чашами, то каково минимальное число взвешиваний, необходимое для того, чтобы расположить грузы по порядку в соответствии с весом, если в каждой чаше весов помещается только один груз'! Или же, если в некотором турнире участвуют и игроков, то каково наименылее число парных встреч, достаточное для того, чтобы распреде шть места между соревнующимися в предположенни, что силы игроков можно линейно упорядочить (ничейные результаты не допускаются). Методы сортировки п элементов, удовлетворяющие указанным ограничениям, можно представить с помощькз структуры расширенного бинарного дерева, такого, которое показано на рис.

34. Каждый енугпренний узел (згзображенный в виде кружочка) содержит два индекса 5: у" и означает сравнение клкзчей К; и К .. Левое поддерево этого узла соответствует последующим сравнениям, которые необходимо выполнить, если К; < К „а правое подлерево — тем действиям, которые необходимо предпринять, если К, > Кз. Каждый внешний узел дерева (изображенный в виде прямоугольника) содержит перестановку аз аэ... а„множества (1, 2,...,п), а это обозначает, что было установлено упорядочение К„<К,„« К„.

(Если взглянуть на путь от корня к этому внешнему узлу, то каждое из и — 1 соотношений К,, < Ь;,~,, где 1 < ! < и, — результат некоторого сравнения оз:а,эз или аз+з.аз на этом пути.) Так, на рис. 34 представлен метод сортировки, суть которого состоит в том, чтобы сначала сравнить К~ с К; если К, > К, то продолжать (двигаясь по правому поддереву) сравнивать К. с Кэ. а затем, если К < Кэ, сравнить К1 с Кэ, наконец, если Кз > Кэ, становится ясно, что Кэ < Кэ < Кз. Реальный алгоритм сортировки будет также перезаписывать ключи в массиве, но нас интересуют только сравнения, поэтому мы игнорируем все перезаписи данных. При сравнении К; с К, в этом дереве всегда имеются в виду исходные ключи К, и Кл а не те ключи, которые могли занять 1- и у-ю позиции в массиве в результате перемещения записей.

Возможны и избыточные сравнения; например, на рис. 35 нет необходимости сравнивать 3:1, поскольку из неравенств К| < Кэ и Кэ < Кэ следует Кз < Кэ. Ни- Уровень 0 Уровень 1 Уровень з Рнс. 34. Дерево сравнений для сортировки трех элементов. Рнс. 3$. Пример избыточного сравненнв. какая перестановка не может соответствовать левому поддереву узла 3: 1 на рнс. 35, так что эта часть алгоритма никогда не будет выполняться! Поскольку нас интересует минимальное число сравнений, можно считать, что избыточные сравнения не выполняются.

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

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

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