Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
_13-17_САОД_Bullleto_DC_CT_LE_LcMS.doc
Скачиваний:
1
Добавлен:
01.03.2025
Размер:
867.33 Кб
Скачать

Понятие о-нотаций. Темп роста времени работы на примере алгоритмов сортировок.

Для оценки эффективности работы алгоритма необходимо знать время его работы на определенном наборе данных, т.е. зависимость этого времени от размерности введенных данных.

Время работы алгоритма как функции от размерности входных данных T(n)=f(n). Это время зависит от операций, которые входят в алгоритм (линейные операции, ветвления, циклы и т.д.). Каждая операция имеет свое среднее время выполнения, а число этих операций определяется как раз размерностью входных данных, также время может зависеть от свойств входных данных (например, отсортирован ли массив или нет). Хорошие алгоритмы не должны зависеть от структуры входных данных. Зависимость времени работы от размерности входных данных – очень важная характеристика алгоритма. Например при сортировке массива метод пузырька со средним временем работы n2 и быстрая сортировка qsort с временем работы n . log2n. На практике найти аналитическое выражение для f почти невозможно, гораздо важнее знать порядок роста времени работы алгоритма Т от размерности входных данных n. Для оценивания этого порядка применяются методы асимптотического анализа, в частности, О-оценивание. Работать с оценками (например, при доказательстве эффективности алгоритма) легче, чем с самой функцией f(n).

Время работы алгоритмов:

Сортировки:

Линейные вставки – О(n2)

Метод Шелла(шаги 9,5,2,1) – O(n4/3)

Двоичное слияние – O(n*ln(n))

Пирамидальная сортировка Неаp sort – O(n*ln(n))

Quick sort – O(n*ln(n))

О-нотации.

Дано: функции f(n) , g(n) >0

Тогда запись: f(n)=Θ(g(n)) означает, что найдутся числа C1,C2 > 0 и число n0 такие, что 0≤C1 . g(n)≤f(n)≤C2 . g(n) при всех n≥n0. Функция g(n) при этом называется асимптотически точной оценкой.

Говорят, что f(n)=O(g(n)), если найдутся число C>0 и число n0 для которых выполняется условие 0≤f(n)≤C . g(n) при n≥n0 . Функция g(n) при этом называется оценкой сверху.

Говорят, что f(n)=Ω(g(n)), если найдутся число C>0 и число n для которых выполняется условие 0≤C . g(n) ≤f(n) при n≥n0. Функция g(n) при этом называется оценкой снизу.

В таких оценках(О и Ω) отношение f(n)/g(n)ограничено в С раз. Недостатком оценок О и Ω является то, что с ростом n они могут довольно сильно отличаться от f(n). Графические зависимости для разных оценок:

Если , то вводятся еще 2 оценки( о-малая и ω-малая) – предельные оценки:

f(n)=o(g(n)) если для всякого ε>0 найдется n0, такое что 0≤f(n) ≤ ε . g(n) при всех n≥n0

f(n)=ω(g(n)) если для всякого ε>0 найдется n0, такое что 0≤ ε . g(n) ≤f(n) при всех n≥n0.