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

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

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

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

Далее в главе 8 показано, что нижнюю границу П(п18п) можно превзойти, если информацию об отсортированном порядке входных элементов можно получить методами, отличными от попарного сравнения. Например, в алгоритме сортировки подсчетом предполагается, что входные данные образуют множество (О, 1,..., /с). Используя в качестве инструмента для определения относительного порядка элементов массива механизм индексации, алгоритм сортировки перечислением может отсортировать и чисел за время 9(/с + и). Таким образом, прн 7с = 0(п) время работы этого алгоритма линейно зависит от размера входного массива. Родственный алгоритм поразрядной сортировки может быть использован для расширения области применения сортировки перечислением.

Если нужно выполнить сортировку и целых чисел, каждое из которых имеет Н цифр, и при этом каждая цифра может принимать до Й возможных значений, то алгоритм поразрядной сортировки справится с этой задачей за время 9(с((п + 7с)). Если д является константой, а величина 1с ведет себя, как О(п), то время выполнения этого алгоритма линейно зависит от размера входного массива. Для применения третьего алгоритма — карманной сортировки — необходимы знания о распределе- Часть 71 Сортировка и яорясГковая статистика 177 нии чисел во входном массиве. Этот алгоритм позволяет выполнить сортировку и равномерно распределенных на полуоткрытом интервале [О, 1) действительных чисел за время 0(и) в среднем случае.

В следующей таблице содержится информация о времени работы алгоритмов сортировки из глав 2 и б — 8. Как обычно, и обозначает количество элементов, которые требуется отсортировать. В случае сортировки подсчетом сортируемыми элементами являются целые числа из множества (О, 1,..., к). В случае поразрядной сортировки каждый элемент представляет собой с1-значное число, причем каждая его цифра принимает Й различных значений. В карманной сортировке предполагается, что ключами являются равномерно распространенные на полуоткрытом интервале [О, 1) действительные числа.

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

Если не делается никаких предположений о распределении входных элементов, время работы данного метода равно Й(и 18 и), как следует из величины нижней границы, найденной в главе 8. В главе 9 будет показано, что 1-й по величине (в порядке возрастания) элемент можно найти за время 0(и), даже если элементы представляют собой произвольные действительные числа. Мы представим рандомизированный алгоритм с компактным псевдокодом, время работы которого в наихудшем случае равно П(пз), но при этом его ожидаемое время работы равно 0(и). Мы также приведем более сложный алгоритм со временем работы 0(п) в наихудшем случае. Сортировка вставкой Сортировка слиянием Пирамидальная сортировка Быстрая сортировка Сортировка подсчетом Поразрядная сортировка Карманная сортировка П( 2) П(п 18 и) 0(и 18 п) П( 2) 9(й+ и) 9(с1(п + к)) со(пз) 6(п2) 6(п 18 п) 1Э(п 18 и) (ожидаемое) 6(к+ и) 9(с1(п + к)) кЭ(п) (в среднем случае) 17в Часть 1!.

Сортировка и лорлдковал статистика Теоретическая подготовка Хотя в основном в этой части не используется сложная математика, для освоения некоторых разделов требуется знание определенных разделов математики. В частности, в ходе анализа алгоритмов быстрой сортировки, карманной сортировки и алгоритма порядковой статистики используются некоторые положения теории вероятности, рассмотренные в приложении В, а также материал по вероятностному анализу и рандомизированным алгоритмам из главы 5. Анализ линейного алгоритма порядковой статистики в наихудшем случае содержит более сложные математические выкладки, чем используемые в ходе анализа наихудших случаев других рассмотренных в этой части алгоритмов. Глава 6.

Пирамидальная сортировка В этой главе описывается еще один алгоритм сортировки, а именно — пирамидальная сортировка. Время работы этого алгоритма, как и время работы сортировки слиянием (и в отличие от времени работы сортировки вставкой), равно 0(п1кп). Как и сортировка методом вставок, и в отличие от сортировки слиянием, пирамидальная сортировка выполняется без привлечения дополнительной памяти: в любой момент времени требуется память для хранения вне массива только некоторого постоянного количества элементов. Таким образом, в пирамидальной сортировке сочетаются наилучшие особенности двух рассмотренных ранее алгоритмов сортировки.

В ходе рассмотрения пирамидальной сортировки мы познакомимся с еще одним методом разработки алгоритмов, а именно — с использованием специализированных структур данных для управления информацией в ходе выполнения алгоритма. В рассматриваемом случае такая структура данных называется пирамидой (Ьеар) и может оказаться полезной не только при пирамидальной сортировке, но и при создании эффективной очереди с приоритетами. В последующих главах эта структура данных появится снова. Изначально термин "Ьеар" использовался в контексте пирамидальной сортировки (Ьеарзог1), но позже его основной смысл изменился, и он стал обозначать память со сборкой мусора, в частности в языках программирования (дзр и )ача (и переводиться как "куча"').

Однако в данной книге термину "Ьеар" (который здесь переводится как "пирамида") возвращен его первоначальный смысл.' 6.1. Пирамиды Структура данных ~бинарная) пирамида представляет собой объект-массив, который можно рассматривать как почти полное бинарное дерево (см. раздел Б.5.3), как показано на рис.6.1. Каждый узел этого дерева соответствует звпрочем, посюпьку перевод на русский язык термкна депр в контексте структур даннык и в контексте упрмюения памятью резвый, никекиа просегем неоднозначности у русскоязычного читатвы возникнуть не дмгино.

— Примеч. нер. (ВО Часть И. Сортировка и порядковая статвстаяа ! 1 3 4 5 ь 7 а 9 !о [(б(сс)ЧД[фГ8:..': Т: д'1Э Б', "-э4[ 1) (6) Рис. 6.1. Неаозрастающая пирамида, представленная в виде (а) бинарного дерева и в виде (б) массива Числа внутри кружков в каждом узле показьптют значение, хранящееся в ясом узле. Числа над узлами соответствуют индексам в массиве.

Линии ны( и под элементами массива показывают отношения между родительскими и дочерними узлами; родительские узлы всегда находятся левее дочерних. Высота дерева равна трем; узел с индексом 4 (и значением 8) имеет высоту 1. элементу массива. Дерево полностью заполнено на всех уровнях, за исключением, возможно, наинизшего, который заполняется слева направо. Массив А, представляющий пирамиду, является объектом с двумя атрибутами: А. (епд(Ь, (юторый, как обычно, дает количество элементов в массиве, и А.Ьеар-зтяе, который указывает, сколько элементов пирамиды содержится в массиве А.

Т.е. хотя А[1 .. А. (епд(Ь[ может содержать некоторые числа, только элементы подмассива А[1 .. А. Ьеар-вазе[, где О < А. Ьеар-закс < А. (епд(Ь, являются корректными элементами пирамиды. Корнем дерева является А[1], а для заданного индекса з узла можно легко вычислить индексы его родительского, левого и правого дочерних узлов. РАкехт[() 1 ге1пгп [з/2 [ $.ЕРТ(() 1 ге(нгп 2з Н!ОНТ(з) 1 ге(нгп 2!+ 1 На большинстве компьютеров операция 2! в процедуре 1.ерт выполняется с помощью одной команды процессора путем битового сдвига числа з на один бит влево. Аналогично операция 2! + 1 в процедуре ЮОНТ также выполняется очень быстро, путем сдвига бинарного представления числа з на одну позицию влево, а затем младший бнт устанавливается равным 1. Процедура РАкент выполняется путем сдвига числа з на один бит вправо. Эффективные программы пирамидальной сортировки часто реализуют эти процедуры как макросы или встраиваемые процедуры.

Различают два вида бинарных пирамид: неубывающие и невозрастающие. В пирамидах обоих видов значения, расположенные в узлах, удовлетворяют сиойснзву пирамиды (Ьеар ргорет(у), являющемуся отличительной чертой пирамиды !В! Глава д Пирамидапьиоа сортировка того или иного вида.

Свойства невазрастающик пирамид (шах-Беар ргорепу) заключается в том, что для каждого отличного от корневого узла с индексом г' выполняется неравенство А[РАкемт(1)] > А[1], т.е, значение узла не превышает значение родительского по отношению к нему узла. Таким образом, в невозрастающей пирамиде самый большой элемент находится в корне дерева, а значения узлов поддерева, берущего начало в каком-то элементе, не превышают значения самого этого элемента. Принцип организации неубывающей пирамиды (пнп-Ьеар) прямо противоположный.

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

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

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