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

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

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

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

° Характер поведения "усредненного" времени работы часто ничем не лучше поведения времени работы для наихудшего случая. Предположим, что последовательность, к которой применяется сортировка методом вставок, Часть 1. Основы 70 сформирована случайным образом. Сюлько времени понадобится, чтобы определить, в какое место подмассива А [1..7' — Ц следует поместить элемент А [7]? В среднем половина элементов подмассива А [1..7' — Ц меньше, чем А [7'], а половина — больше его.

Таким образом, в среднем нужно проверить половину элементов подмассива А [1.. 7' — Ц, поэтому г приблизительно равно у/2. В результате получается, что среднее время работы алгоритма является квадратичной функцией от количества входных элементов, т.е. характер этой зависимости такой же, как и для времени работы в наихудшем случае. В некоторых частных случаях нас будет интересовать среднее время работы алгоритма, или его математическое ожиданиеб. В главе 5 будет продемонстрирован метод вероятностного анализа, позволяющий определить ожидаемое время работы.

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

Порядок возрастания Для облегчения анализа процедуры 1мзпкт~ом Яокт были сделаны неюторые упрощающие предположения. Во-первых, мы проигнорировали фактическое время выполнения каждой инструкции, представив эту величину в виде некоторой константы с;. Далее мы увидели, что учет всех этих констант дает излишнюю информацию: время работы алгоритма в наихудшем случае выражается формулой апз + Ьп + с, где а, Ь, и с — некоторые константы, зависящие от стоимостей с;ч Таким образом, мы игнорируем не только фактические стоимости команд, но и их абстрактные стоимости сч Теперь введем еще одно абстрактное понятие, упрощающее анализ. Это скорость роста (гаСе оГ йгоук1)з), или порядок роста (оггзег оГ яготчт)з), времени работы, который и интересует нас на самом деле.

Таким образом, во внимание будет приниматься только главный член формулы (т.е, в нашем случае апз), поскольку при больших п членами меньшего порядка можно пренебречь. Кроме того, постоянные множители при главном члене также будут игнорироваться, так как для оценки вычислительной эффективности алгоритма с входными данными большого объема они менее важны, чем порядок роста. Таким образом, время работы Далее в книге строгий термин "математическое ожидание" некоторой величины зачастую для простоты изложения заменяется термином "ожидаемое значение", например, "ожидаемое время работы алгоритма" означает "математическое ожидание времени работы алгоритма". — Прим. ред. Глава 2. Приступаем к изучению 71 алгоритма, работающего по методу вставок, в наихудшем случае равно 6 [пз) (пронзносится "тета от и в квадрате").

В этой главе О-обозначения используются неформально; их строгое определение приводится в главе 3. Обычно один алгоритм считается эффективнее другого, если время его работы в наихудшем случае имеет более низкий порядок роста. Из-за наличия постоянных множителей и второстепенных членов эта оценка может быть ошибочной, если входные данные невелики. Однако если объем входных данных значительный, то, например, алгоритм О [пз) в наихудшем случае работает быстрее, чем а„,,,рн,„, О гпз) Упражнения 2.2-1.

Выразите функцию пз/1000 — 100пз — 100п + 3 в О-обозначениях. 2.2-2. Рассмотрим сортировку элементов массива А, которая производится так. Сначала определяется наименьший элемент массива А, который ставится на место элемента А [1], затем производится поиск второго наименьшего элемента массива А, который ставится на место элемента А [2]. Этот процесс продолжается для первых п — 1 элементов массива А.

Запишите псевдокод этого алгоритма, известного как сортировка амбарам (зе!есйоп зоп). Какой инвариант цикла сохраняется для этого алгоритма? Почему его достаточно выполнить для первых и — 1 элементов, а не для всех и элементов? Определите время работы алгоритма в наилучшем и наихудшем случаях и запишите его в О-обозначениях. 2.2-3. Рассмотрим алгоритм линейного поиска (см. упражнение 2.1-3). Для скольких элементов входной последовательности в среднем нужно произвести проверку, если предполагается, что все элементы массива с равной вероятностью могут иметь искомое значение? Что происходит в наихудшем случае? Чему равно время работы алгоритма линейного поиска в среднем и в наихудшем случае (в 6-обозначениях)? Обоснуйте ваш ответ. 2.2-4.

Каким образом можно модифицировать почти каждый алгоритм, чтобы получить оптимальное время работы в наилучшем случае? 2.3 Разработка алгоритмов Есть много методов разработки алгоритмов. В алгоритме, работающем по методу вставок, применяется инкрементный подход: располагая отсортированным подмассивом А [1.. у — 1], мы помещаем очередной элемент А [1] туда, где он должен находиться, в результате чего получаем отсортированный подмассив А [1..7].

Часть 1. Основы 72 В данном разделе рассматривается альтернативный подход к разработке алгоритмов, известный как метод разбиения (" разделяй и властвуй"). Разработаем с помощью этого подхода алгоритм сортировки, время работы которого в наихудшем случае намного меньше времени работы алгоритма, работающего по методу включений. Одно из преимуществ алгоритмов, разработанных методом разбиения, заключается в том, что время их работы часто легко определяется с помощью технологий, описанных в главе 4. 2.3.1 Метод декомпозиции Многие полезные алгоритмы имеютрекурсивную структуру: для решения данной задачи онн рекурсивно вызывают сами себя один или несколько раз, чтобы решить вспомогательную задачу, имеющую непосредственное отношение к поставленной задаче. Такие алгоритмы зачастую разрабатываются с помогцью метода декомлозиции, нлн разбиения: сложная задача разбивается на несколько более простых, которые подобны исходной задаче, но имеют меньший объем; далее эти вспомогательные задачи решаются рекурсивным методом, после чего полученные решения комбинируются с целью получить решение исходной задачи.

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

На интуитивном уровне его работу можно описать таким образом. Разделение: сортируемая последовательность, состоящая из и элементов, разбивается на две меньшие последовательности, каждая из которых содержит и/2 элементов. Покорение: сортировка обеих вспомогательных последовательностей методом слияния. Комбинирование: слияние двух отсортированных последовательностей для получения окончательного результата.

Рекурсия достигает своего нижнего предела, когда длина сортируемой последовательности становится равной 1. В этом случае вся работа уже сделана, поскольку любую такую последовательность можно считать упорядоченной. Глава 2. Приступаем к изучению 73 Основная операция, которая производится в процессе сортировки по методу слияний, — это объединение двух отсортированных последовательностей в ходе комбинирования (последний этап). Это делается с помощью вспомогательной процедуры Мексе(А,р,д, т), где А — массив, а р, о и т — индексы, нумерующис элсменты массива, такие, что р < о < т.

В этой процедуре предполагается, что элементы подмассивов А [р.А)] и А [д+ 1..т] упорядочены. Она сливает эти два подмассива в один отсортированный, элементы которого заменяют текущие элементы подмассива А [р..т]. Для выполнения процедуры Мексе требуется время О (и), где п = т — р+ 1— количество подлежащих слиянию элементов. Процедура работает следующим образом. Возвращаясь к наглядному примеру сортировки карт, предположим, что на столе лежат две стопки карт, обращенных лицевой стороной вниз. Карты в каждой стопке отсортированы, причем наверху находится карта наименьшего достоинства.

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

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

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

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