Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву
Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Вычислительная сложность алгоритмовСодержание книги
Поиск на нашем сайте В области анализа и построения алгоритмов принято выражать время выполнения, так же как и любую другую меру эффективности, с точностью до мультипликативной константы. Это обычно делается путем подсчета лишь определенных «ключевых операций», выполняемых алгоритмом (что легко осуществить, анализируя версию этого алгоритма, записанную на языке высокого уровня). Такой подход абсолютно правомерен при определении нижних оценок времени выполнения, поскольку любые неучтенные операции могут лишь увеличить их; однако при работе с верхними оценками мы обязаны убедиться в том, что вклад выбранных ключевых операций в сумме отличается не более чем в константу раз от вклада всех операций, выполненных алгоритмом. Кнут популяризовал аппарат обозначений, прекрасно отличающих верхние оценки от нижних: O(f(N)) служит для обозначения множества всех функций g(N) таких, что существуют положительные константы С и N0, для которых o(f(N)) служит для обозначения множества всех функций g(N) таких, что для всех положительных констант С существует некое No, при котором g(N) Пример: Рассмотрим эти оценки на примере бинарного поиска на отсортированном массиве чисел. Пусть в массиве N элементов. Поиск осуществляется следующим образом: массив a1 a2 … aN искомый элемент x Поиск идет на 1 ... N элементах. Сравниваем x и a[N/2] . Возможные результаты: 1. x = a[N/2] поиск завершен. 2. x < a[N/2] продолжаем поиск на 1 .. [N/2] элементах 3. x > a[N/2] продолжаем поиск на [N/2].. N элементах Таким образом в худшем случае поиск закончится когда будет производиться на множестве из двух элементов ai ai+1 . На i – м шаге количество рассматриваемых элементов равно Итак время работы алгоритма можно оценить как O(log2N) = O(ln N) Несомненно, пространственная (объем используемой памяти) и временная сложности как функции от размеров задачи являются двумя фундаментальными оценками эффективности при анализе алгоритмов. Чаще всего при описании алгоритмов будет приводиться оценка их сложности для худшего случая. Сложность для худшего случая — это максимальная мера эффективности данного алгоритма для всех задач данного размера, и ее нельзя путать со сложностью в среднем (или ожидаемой), которая отличается тем, что дает оценку наблюдаемого поведения этого алгоритма. К сожалению, анализ поведения в среднем значительно более сложная вещь, чем анализ худшего случая, по двум причинам: во-первых, существенные математические трудности возникают, даже если удачно выбрано исходное распределение; во-вторых, часто с трудом достигается согласие в том, что именно выбранное распределение является реальной моделью изучаемой ситуации. Еще один важный момент, который следует отметить, связан с тем, что обозначения «порядка» скрывают мультипликативные константы. Следовательно, оценка сложности достигает своей законной силы только при весьма больших размерах задачи; именно поэтому такой подход называется асимптотическим анализом. Следовательно, вполне вероятно,— и действительно часто бывает так, — что при малых размерах задачи наиболее пригоден алгоритм, который асимптотически не оптимален. Это предостережение никак нельзя игнорировать при выборе алгоритма для конкретного приложения.
|
||
|
Последнее изменение этой страницы: 2024-06-27; просмотров: 51; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.217.128 (0.01 с.) |