Лекция №4. Асимтотическая нотация. Предмет "Структуры и алгоритмы обработки данных" - Presentation Transcript
Хакасский государственный университет им. Н.Ф. Катанова
Структуры и алгоритмы обработки данных
Лекция: Ассимтотическая нотация и
рекурентные соотношения
Николай Гребенщиков, www.grebenshikov.ru
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
Использование в формулах
f (n) = n3 + O(n2) ⇒ (∃h(n) ∈ O(n2), f (n) = n3 + h(n))
2
Ω - нотация: ассимтотическая нижняя граница
Ω(g(n)) = {f (n) : ∃c > 0, n0 > 0 ⇒ 0 ≤ c · g(n) ≤ f (n), n ≥ n0}
√
Пример: n = Ω(lg(n))
3
Решение рекурсий: метод подстановки
T (n) = 4T (n/2) + n
1. Догадаться (предположить) о решении
2. Проверить решение с помощью индукции
3. Найти и подставить константы
5
Решение рекурсий: метод подстановки
T (n) = 4T (n/2) + n
Догадка: T (n) = O(n3)
Базис: T (1) = Θ(1) < c < c · n3
Посылка индукции: T (k) ≤ c · k3, k < n
6
Ход индукции:
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
Догадка: T (n) = O(n2)
Базис: T (1) = Θ(1) < c < c · n2
Посылка индукции: T (k) ≤ c · k2, k < n
8
Ход индукции:
n
T (n) = 4T +n
2
n 2
≤ 4c +n
2
= cn2 + n
= cn2 − (−n)
Коллизия: нужно −n > 0
9
Посылка индукции: 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
Основной метод
применяется для T (n) = aT (n/b) + f (n)
a ≥ 1, b > 1, f (n) − (f (n) > 0, n > n0)
15
Основной метод
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
Пример
T (n) = 4T (n/2) + n
nlogba = nlog24 = n2 - 1-й случай
Ответ: T (n) = Θ(n2)
17
Пример
T (n) = 4T (n/2) + n2 - 2-й случай
Ответ: T (n) = Θ(n2log(n))
18
Пример
T (n) = 4T (n/2) + n3 - 3-й случай
Ответ: T (n) = Θ(n3)
19
Пример
T (n) = 4T (n/2) + n3/log(n)
Ответ: Основной метод не подходит - использовать другой
метод.
20
Основной метод: идея доказательства
logb n−1
Итого: Θ(nlogba) + aj f (n/bj )
j=0
21
Основной метод: идея доказательства
1. Доминирует f (n). Сумма уровня ↓.
2. Доминирует Θ(nlogba). Сумма уровня ↑.
3. Нет доминанты. Суммы уровней примерно равны f (n).
22
Список литературы
• Кормен Т., Лейзерсон Ч., Ривест Р., Штайн К. Алгорит-
мы: построение и анализ, 2-е издание. - М. : Издатель-
ский дом “Вильямс”, 2007. сс.87-139.
23
0 comments
Post a comment