Лекция №1. Введение. Предмет "Структуры и алгоритмы обработки данных"
Лекция №4. Асимтотическая нотация. Предмет "Структуры и алгоритмы обработки данных"
1. Хакасский государственный университет им. Н.Ф. Катанова
Структуры и алгоритмы обработки данных
Лекция: Ассимтотическая нотация и
рекурентные соотношения
Николай Гребенщиков, www.grebenshikov.ru
2. O - нотация: ассимтотическая верхняя граница
f (n) = O(g(n)) ⇒
(∃c > 0, n0 > 0 ⇒ 0 ≤ f (n) ≤ c · g(n), n ≥ n0)
O(g(n)) = {f (n) : ∃c > 0, n0 > 0 ⇒ 0 ≤ f (n) ≤ c · g(n), n ≥ n0}
Пример: 2n2 = O(n3) ⇔ 2n2 ∈ O(n3)
1
6. Решение рекурсий: метод подстановки
T (n) = 4T (n/2) + n
1. Догадаться (предположить) о решении
2. Проверить решение с помощью индукции
3. Найти и подставить константы
5
7. Решение рекурсий: метод подстановки
T (n) = 4T (n/2) + n
Догадка: T (n) = O(n3)
Базис: T (1) = Θ(1) < c < c · n3
Посылка индукции: T (k) ≤ c · k3, k < n
6
8. Ход индукции:
n
T (n) = 4T +n
2
n 3
≤ 4c +n
2
1
= cn3 + n
2
= cn 3 − ( 1 cn3 − n)
2
1
≤ cn3, cn3 − n ≥ 0
2
Найдем константы: (c ≥ 1, n ≥ 1)
7
9. Догадка: T (n) = O(n2)
Базис: T (1) = Θ(1) < c < c · n2
Посылка индукции: T (k) ≤ c · k2, k < n
8
10. Ход индукции:
n
T (n) = 4T +n
2
n 2
≤ 4c +n
2
= cn2 + n
= cn2 − (−n)
Коллизия: нужно −n > 0
9
11. Посылка индукции: T (k) ≤ c1 · k2 − 2 · k, k < n
Ход индукции:
n
T (n) = 4T +n
2
n 2 n
= 4c1 − c2 +n
2 2
= c1n2 + (1 − 2c2)n
= c1n2 − 2c2n − (−1 + c2)n
≤ c1n2 − c2n, c2 ≥ 1
Базис: T (1) = Θ(1) < c1 − c2
10
17. Основной метод
1. Если f (n) = O(nlogba− ), > 0 ⇒ T (n) = Θ(nlogba)
2. Если f (n) = Θ(nlogba) ⇒ T (n) = Θ(nlogbalog(n))
3. Если
f (n) = Ω(nlogba− ), > 0, af (n/b) ≤ cf (n), c < 1, n > n0 ⇒
⇒ T (n) = Θ(f (n))
16
18. Пример
T (n) = 4T (n/2) + n
nlogba = nlog24 = n2 - 1-й случай
Ответ: T (n) = Θ(n2)
17
19. Пример
T (n) = 4T (n/2) + n2 - 2-й случай
Ответ: T (n) = Θ(n2log(n))
18
20. Пример
T (n) = 4T (n/2) + n3 - 3-й случай
Ответ: T (n) = Θ(n3)
19
21. Пример
T (n) = 4T (n/2) + n3/log(n)
Ответ: Основной метод не подходит - использовать другой
метод.
20
22. Основной метод: идея доказательства
logb n−1
Итого: Θ(nlogba) + aj f (n/bj )
j=0
21
23. Основной метод: идея доказательства
1. Доминирует f (n). Сумма уровня ↓.
2. Доминирует Θ(nlogba). Сумма уровня ↑.
3. Нет доминанты. Суммы уровней примерно равны f (n).
22
24. Список литературы
• Кормен Т., Лейзерсон Ч., Ривест Р., Штайн К. Алгорит-
мы: построение и анализ, 2-е издание. - М. : Издатель-
ский дом “Вильямс”, 2007. сс.87-139.
23