SlideShare a Scribd company logo
1 of 10
Практическое занятие 6
Асимптотический анализ
1.
2.
3.
4.

Теоретические сведения
Контрольные вопросы
Указания по выполнению заданий
Задания
Теоретические сведения
В анализе алгоритмов точное знание количества операций,
выполненных алгоритмом, не играет существенной роли.
Более важной характеристикой является скорость роста
этого числа при возрастании объема входных данных. Она
называется скоростью роста алгоритма.
Скорость роста определяется старшим, доминирующим,
членом формулы, описывающей сложность алгоритма.
Поэтому можно пренебречь младшими членами, которые
растут медленнее. Отбросив все младшие члены, получают
то, что называется порядком функции или алгоритма,
скоростью роста сложности которого она является.
Алгоритмы можно сгруппировать по скорости роста их
сложности:
• алгоритмы, сложность которых растет по крайней мере так
же быстро, как рассматриваемая функция;
• алгоритмы, сложность которых растет с той же скоростью;
• алгоритмы, сложность которых растет медленнее, чем эта
функция.
Теоретические сведения

Класс функций, растущих по крайней мере так же быстро, как
f, обозначают через Ω(f). Функция g принадлежит этому
классу, если при, всех значениях аргумента n, больших
некоторого порога n0 значение g(n) > cf(n) для некоторого
положительного числа c.
Класс функций, растущих не быстрее f, обозначается O(f).
Функция f образует верхнюю границу для класса O(f). С
формальной точки зрения функция g принадлежит классу
O(f), если g(п) < cf(n) для всех n, больших некоторого
порога n0, и для некоторой положительной константы c.
Через Θ(f) обозначают класс функций, растущих с той же
скоростью, что и f. С формальной точки зрения этот класс
представляет собой пересечение двух предыдущих
классов.
Каждый из классов Ω(f), O(f) и Θ(f) является множеством, и
поэтому имеет смысл выражение «g – элемент этого
множества». В анализе, однако, нередко пишут g = O(f), что
на самом деле означает g ∈ O(f).
Теоретические сведения

Верхняя асимптотическая граница, предоставляемая Oобозначениями,
может
описывать
асимптотическое
поведение функции с разной точностью. Граница
2n2 = O(n2) дает правильное представление об
асимптотическом поведении функции, а граница 2n = O(n2)
его не обеспечивает. Для обозначения того, что верхняя
граница не является асимптотически точной оценкой
функции, применяются o-обозначения. Формально функция
g принадлежит классу o(f), если для любой положительной
константы c существует такое положительное n0, что
g(п) < cf(n) для всех n ≥ n0. Например: 2n = o(n2), но
2n2
≠ o(n2).
ω-обозначения соотносятся с Ω-обозначениями так же, как oобозначения с O-обозначениями. С помощью ωобозначений указывается нижний предел, не являющийся
асимптотически точной оценкой. Функция g принадлежит
классу ω(f), если для любой положительной константы c
существует такое положительное n0, что при всех значениях
аргумента n ≥ n0, значение g(n) > cf(n).
Теоретические сведения
Пример 1. Если дано f(t) = 5 + sin(t) и g(t) = 1,
то 5 + sin(t) = Θ(1), так как 4 × 1 ≤ 5 + sin(t) ≤ 6 × 1.
Между функциями Θ, O, Ω, o и ω существуют полезные
отношения, некоторые из которых представлены ниже.
Пусть f и g – положительные функции от n. Тогда,
например:
• f(n) = O(g(n)) ⇔ g(n) = Ω(f(n));
• f(n) = Θ(g(n)) ⇔ g(n) = Θ(f(n));
• f(n) = Θ(g(n)) ⇔ [f(n) = O(g(n)) и f(n) = Ω(g(n))];
• f(n) = o(g(n)) ⇔ g(n) = ω(f(n));
• f(n) = o(g(n)) ⇒ f(n) = O(g(n)), но обратное не верно;
• f(n) = ω(g(n)) ⇒ f(n) = Ω(g(n)), но обратное не верно;
• f(n) ограничено сверху и снизу положительными
константами тогда и только тогда, когда f(n) = Θ(1)
и др.
Теоретические сведения
Чтобы определить отношения между функциями f и g, часто бывает
полезно определить значение предела L отношения f(n)/g(n) при n → ∞.
Значение предела позволяет сделать ряд выводов.
1. L = 0. Это означает, что g(n) возрастает с большей скоростью, чем f(n),
и отсюда f(n) = O(g(n)).
2. L = ∞. Это означает, что f(n) возрастает с большей скоростью, чем g(n),
и отсюда f(n) = Ω(g(n)).
3. L ≠ 0 и ограничено. Это означает, что f(n) и g(n) возрастают с
одинаковой скоростью и отсюда f(n) = Θ(g(n)) и g(n) = Θ(f(n)).
4. Предела не существует. Это означает, что данный метод нельзя
использовать для определения асимптотической оценки между f(n) и
g(n).
Пример 2. Пусть f(n) = n(n + 1) / 2 и g(n) = n2. f(n) = Θ(g(n)) так как

1
1+
f ( n)
n2 + n
n =1
lim
= lim
= lim
2
n → ∞ g ( n)
n → ∞ 2n
n→∞ 2
2
Контрольные вопросы
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.

Скорость роста алгоритмов.
Порядок роста алгоритма.
Категории алгоритмов по росту сложности.
Класс Θ.
Класс O.
Класс Ω.
Класс o.
Класс ω.
Отношения между классами Θ, O, Ω, o и ω.
Анализ предела отношения функций.
Указания по выполнению заданий
1.
2.
3.
4.

Получить задание
Получить решение задачи .
Подготовить отчет по выполнению задания. Отчет
должен включать задание и описание этапов
выполнения задания.
Ответить на вопросы по выполнению задания и
контрольные вопросы
Задания
1. Расположить следующее по возрастанию: n, n1/2, log2n, log2(log2n),
(log2n)2, (1/3)n, 4, (3/2)n, n!.
2. Доказать или опровергнуть каждое из следующих утверждений:
1) f(n) = O(g(n)) ⇒ g(n) = o(f(n));
2) f(n) + g(n) = Θ(max(f(n), g(n)));
3) f(n) = O((f(n))2);
4) f(n) = O(g(n)) ⇒ g(n) = Ω(f(n));
5) f(n) + o(f(n)) = Θ(f(n)).
3. С помощью Θ, O, Ω, o и ω описать отношения между следующими
парами функций:
1) (log2n)k, n, где k – положительная константа;
2) nk, cn, где k и c – константа k > 0, c > 1;
3) 2n, 2n/2.
4. Доказать, что 17n1/6 = O(n1/5).
5. Доказать, что n

k 1 / 6 = Θ(n 7 / 6 )
∑

k =1
Задания
6. Показать, что для любых действительных констант a и b, где b > 0,
справедливо соотношение (n + a)b = Θ(nb).
7. Доказать или опровергнуть утверждения 2n + 1 = O(2n) и 22n = O(2n).
8. Доказать, что время работы алгоритма равно Θ(g(n)) тогда и только
тогда, когда время работы алгоритма в наихудшем случае равно
O(g(n)), а время работы алгоритма в наилучшем случае равно
Ω(g(n)).
9. Доказать, что множество o(g(n)) ∩ ω(g(n)) пустое.

More Related Content

What's hot

введение в паскаль
введение в паскальвведение в паскаль
введение в паскальisva69
 
манжос мет интервалов
манжос мет интерваловманжос мет интервалов
манжос мет интерваловurvlan
 
алгоритмы и исполнители
алгоритмы и исполнителиалгоритмы и исполнители
алгоритмы и исполнителиoksench
 
возростание и убывание функции
возростание и убывание функциивозростание и убывание функции
возростание и убывание функцииАня Иванова
 
Презентация "Алгоритмы"
Презентация "Алгоритмы"Презентация "Алгоритмы"
Презентация "Алгоритмы"Johnny_Lean
 
практика 17
практика 17практика 17
практика 17student_kai
 
Теория. Сложные условия в операторе сравнения
Теория. Сложные условия в операторе сравненияТеория. Сложные условия в операторе сравнения
Теория. Сложные условия в операторе сравненияAlexandr Grigorenko
 
ветвление
ветвлениеветвление
ветвлениеisva69
 
практика 8
практика 8практика 8
практика 8student_kai
 
Сложные условия в паскале
Сложные условия в паскалеСложные условия в паскале
Сложные условия в паскалеDaria Romanova
 
Стажировка 2016-07-08 01 Евгений Тюменцев. S.O.L.I.D.
Стажировка 2016-07-08 01 Евгений Тюменцев. S.O.L.I.D.Стажировка 2016-07-08 01 Евгений Тюменцев. S.O.L.I.D.
Стажировка 2016-07-08 01 Евгений Тюменцев. S.O.L.I.D.SmartTools
 
кустурова элем функции
кустурова элем функциикустурова элем функции
кустурова элем функцииurvlan
 
Алгоритмы на ruby: перебор и рекурсия
Алгоритмы на ruby: перебор и рекурсияАлгоритмы на ruby: перебор и рекурсия
Алгоритмы на ruby: перебор и рекурсияEvgeny Smirnov
 
Ruby: работа с массивами
Ruby: работа с массивамиRuby: работа с массивами
Ruby: работа с массивамиEvgeny Smirnov
 
Логарифмическая Функция
Логарифмическая ФункцияЛогарифмическая Функция
Логарифмическая ФункцияSlava Antipov
 
элементы языка и типы данных
элементы языка и типы данныхэлементы языка и типы данных
элементы языка и типы данныхЕлена Ключева
 

What's hot (20)

Algorithm
AlgorithmAlgorithm
Algorithm
 
введение в паскаль
введение в паскальвведение в паскаль
введение в паскаль
 
манжос мет интервалов
манжос мет интерваловманжос мет интервалов
манжос мет интервалов
 
алгоритмы и исполнители
алгоритмы и исполнителиалгоритмы и исполнители
алгоритмы и исполнители
 
возростание и убывание функции
возростание и убывание функциивозростание и убывание функции
возростание и убывание функции
 
Презентация "Алгоритмы"
Презентация "Алгоритмы"Презентация "Алгоритмы"
Презентация "Алгоритмы"
 
4 algoritm
4 algoritm4 algoritm
4 algoritm
 
практика 17
практика 17практика 17
практика 17
 
Теория. Сложные условия в операторе сравнения
Теория. Сложные условия в операторе сравненияТеория. Сложные условия в операторе сравнения
Теория. Сложные условия в операторе сравнения
 
ветвление
ветвлениеветвление
ветвление
 
практика 8
практика 8практика 8
практика 8
 
Сложные условия в паскале
Сложные условия в паскалеСложные условия в паскале
Сложные условия в паскале
 
Стажировка 2016-07-08 01 Евгений Тюменцев. S.O.L.I.D.
Стажировка 2016-07-08 01 Евгений Тюменцев. S.O.L.I.D.Стажировка 2016-07-08 01 Евгений Тюменцев. S.O.L.I.D.
Стажировка 2016-07-08 01 Евгений Тюменцев. S.O.L.I.D.
 
кустурова элем функции
кустурова элем функциикустурова элем функции
кустурова элем функции
 
Алгоритмы на ruby: перебор и рекурсия
Алгоритмы на ruby: перебор и рекурсияАлгоритмы на ruby: перебор и рекурсия
Алгоритмы на ruby: перебор и рекурсия
 
Ruby: работа с массивами
Ruby: работа с массивамиRuby: работа с массивами
Ruby: работа с массивами
 
Логарифмическая Функция
Логарифмическая ФункцияЛогарифмическая Функция
Логарифмическая Функция
 
Ruby строки
Ruby строкиRuby строки
Ruby строки
 
функция
функцияфункция
функция
 
элементы языка и типы данных
элементы языка и типы данныхэлементы языка и типы данных
элементы языка и типы данных
 

Viewers also liked

лекция№23
лекция№23лекция№23
лекция№23student_kai
 
лекция№6
лекция№6лекция№6
лекция№6student_kai
 
лекция№17
лекция№17лекция№17
лекция№17student_kai
 
физика горения07
физика горения07физика горения07
физика горения07student_kai
 
лекция№9
лекция№9лекция№9
лекция№9student_kai
 
презентация7
презентация7презентация7
презентация7student_kai
 
презентация курсовой работы
презентация курсовой работыпрезентация курсовой работы
презентация курсовой работыstudent_kai
 
презентация 17
презентация 17презентация 17
презентация 17student_kai
 
лекция№24
лекция№24лекция№24
лекция№24student_kai
 
лекция№31
лекция№31лекция№31
лекция№31student_kai
 
лекция№10
лекция№10лекция№10
лекция№10student_kai
 
лекция№8
лекция№8лекция№8
лекция№8student_kai
 
лабораторная работа 5
лабораторная работа 5лабораторная работа 5
лабораторная работа 5student_kai
 
презентация8
презентация8презентация8
презентация8student_kai
 

Viewers also liked (20)

Physicalactivity
PhysicalactivityPhysicalactivity
Physicalactivity
 
Eiep mod6
Eiep mod6Eiep mod6
Eiep mod6
 
лекция№23
лекция№23лекция№23
лекция№23
 
лекция 12
лекция 12лекция 12
лекция 12
 
лекция№6
лекция№6лекция№6
лекция№6
 
лаб 6 7
лаб 6 7лаб 6 7
лаб 6 7
 
лекция10
лекция10лекция10
лекция10
 
лекция№17
лекция№17лекция№17
лекция№17
 
лекция 6
лекция 6лекция 6
лекция 6
 
физика горения07
физика горения07физика горения07
физика горения07
 
лекция№9
лекция№9лекция№9
лекция№9
 
презентация7
презентация7презентация7
презентация7
 
презентация курсовой работы
презентация курсовой работыпрезентация курсовой работы
презентация курсовой работы
 
презентация 17
презентация 17презентация 17
презентация 17
 
лекция№24
лекция№24лекция№24
лекция№24
 
лекция№31
лекция№31лекция№31
лекция№31
 
лекция№10
лекция№10лекция№10
лекция№10
 
лекция№8
лекция№8лекция№8
лекция№8
 
лабораторная работа 5
лабораторная работа 5лабораторная работа 5
лабораторная работа 5
 
презентация8
презентация8презентация8
презентация8
 

Similar to практика 6

Скорость роста функций
Скорость роста функцийСкорость роста функций
Скорость роста функцийDEVTYPE
 
О-символика
О-символикаО-символика
О-символикаDEVTYPE
 
методы решения логарифмических уравнений
методы решения логарифмических уравненийметоды решения логарифмических уравнений
методы решения логарифмических уравненийNickEliot
 
Лекция 1 Скорость роста функций
Лекция 1 Скорость роста функцийЛекция 1 Скорость роста функций
Лекция 1 Скорость роста функцийsimple_people
 
Metody resheniya logarifmicheskih_uravnenij
Metody resheniya logarifmicheskih_uravnenijMetody resheniya logarifmicheskih_uravnenij
Metody resheniya logarifmicheskih_uravnenijIvanchik5
 
Алгоритмы и структуры данных осень 2013 лекция 1
Алгоритмы и структуры данных осень 2013 лекция 1Алгоритмы и структуры данных осень 2013 лекция 1
Алгоритмы и структуры данных осень 2013 лекция 1Technopark
 
практика 4
практика 4практика 4
практика 4student_kai
 
02 сортировка и поиск
02 сортировка и поиск02 сортировка и поиск
02 сортировка и поискFedor Tsarev
 
чернякова г.в.
чернякова г.в.чернякова г.в.
чернякова г.в.sharikdp
 
Logarifmicheskie uravneniya
Logarifmicheskie uravneniyaLogarifmicheskie uravneniya
Logarifmicheskie uravneniyaIvanchik5
 
Обработка коллекций наизнанку: как применить много функций к одному аргументу...
Обработка коллекций наизнанку: как применить много функций к одному аргументу...Обработка коллекций наизнанку: как применить много функций к одному аргументу...
Обработка коллекций наизнанку: как применить много функций к одному аргументу...corehard_by
 
Matematika 10-klass-merzljak-2018-ros
Matematika 10-klass-merzljak-2018-rosMatematika 10-klass-merzljak-2018-ros
Matematika 10-klass-merzljak-2018-roskreidaros1
 
Logarifmicheskaya funkciya
Logarifmicheskaya funkciyaLogarifmicheskaya funkciya
Logarifmicheskaya funkciyaIvanchik5
 
Kasatelnaya k grafiku_funkcii
Kasatelnaya k grafiku_funkciiKasatelnaya k grafiku_funkcii
Kasatelnaya k grafiku_funkciiIvanchik5
 
1332519 (1).pptx
1332519 (1).pptx1332519 (1).pptx
1332519 (1).pptxrdes1
 
Тригонометрические функции числового аргумента
Тригонометрические функции числового аргументаТригонометрические функции числового аргумента
Тригонометрические функции числового аргументаFormula.co.ua
 

Similar to практика 6 (20)

Скорость роста функций
Скорость роста функцийСкорость роста функций
Скорость роста функций
 
О-символика
О-символикаО-символика
О-символика
 
методы решения логарифмических уравнений
методы решения логарифмических уравненийметоды решения логарифмических уравнений
методы решения логарифмических уравнений
 
Лекция 1 Скорость роста функций
Лекция 1 Скорость роста функцийЛекция 1 Скорость роста функций
Лекция 1 Скорость роста функций
 
Metody resheniya logarifmicheskih_uravnenij
Metody resheniya logarifmicheskih_uravnenijMetody resheniya logarifmicheskih_uravnenij
Metody resheniya logarifmicheskih_uravnenij
 
Алгоритмы и структуры данных осень 2013 лекция 1
Алгоритмы и структуры данных осень 2013 лекция 1Алгоритмы и структуры данных осень 2013 лекция 1
Алгоритмы и структуры данных осень 2013 лекция 1
 
практика 4
практика 4практика 4
практика 4
 
02 сортировка и поиск
02 сортировка и поиск02 сортировка и поиск
02 сортировка и поиск
 
Pril2
Pril2Pril2
Pril2
 
чернякова г.в.
чернякова г.в.чернякова г.в.
чернякова г.в.
 
Logarifmicheskie uravneniya
Logarifmicheskie uravneniyaLogarifmicheskie uravneniya
Logarifmicheskie uravneniya
 
Обработка коллекций наизнанку: как применить много функций к одному аргументу...
Обработка коллекций наизнанку: как применить много функций к одному аргументу...Обработка коллекций наизнанку: как применить много функций к одному аргументу...
Обработка коллекций наизнанку: как применить много функций к одному аргументу...
 
M
MM
M
 
презентация к уроку 3
презентация к уроку 3презентация к уроку 3
презентация к уроку 3
 
Matematika 10-klass-merzljak-2018-ros
Matematika 10-klass-merzljak-2018-rosMatematika 10-klass-merzljak-2018-ros
Matematika 10-klass-merzljak-2018-ros
 
Logarifmicheskaya funkciya
Logarifmicheskaya funkciyaLogarifmicheskaya funkciya
Logarifmicheskaya funkciya
 
Kasatelnaya k grafiku_funkcii
Kasatelnaya k grafiku_funkciiKasatelnaya k grafiku_funkcii
Kasatelnaya k grafiku_funkcii
 
1332519 (1).pptx
1332519 (1).pptx1332519 (1).pptx
1332519 (1).pptx
 
p01.pdf
p01.pdfp01.pdf
p01.pdf
 
Тригонометрические функции числового аргумента
Тригонометрические функции числового аргументаТригонометрические функции числового аргумента
Тригонометрические функции числового аргумента
 

More from student_kai

презентация
презентацияпрезентация
презентацияstudent_kai
 
презентации продолжение банкета
презентации продолжение банкетапрезентации продолжение банкета
презентации продолжение банкетаstudent_kai
 
основы программирования на языке C
основы программирования на языке Cосновы программирования на языке C
основы программирования на языке Cstudent_kai
 
лекция№34
лекция№34лекция№34
лекция№34student_kai
 
лекция№32
лекция№32лекция№32
лекция№32student_kai
 
лекция№33
лекция№33лекция№33
лекция№33student_kai
 
лекция№30
лекция№30лекция№30
лекция№30student_kai
 
лекция№29
лекция№29лекция№29
лекция№29student_kai
 
лекция№28
лекция№28лекция№28
лекция№28student_kai
 
лекция№27
лекция№27лекция№27
лекция№27student_kai
 
лекция№26
лекция№26лекция№26
лекция№26student_kai
 
лекция№25
лекция№25лекция№25
лекция№25student_kai
 
лекция№25
лекция№25лекция№25
лекция№25student_kai
 
лекция№22
лекция№22лекция№22
лекция№22student_kai
 
лекция№21
лекция№21лекция№21
лекция№21student_kai
 
лекция№20
лекция№20лекция№20
лекция№20student_kai
 
лекция№19
лекция№19лекция№19
лекция№19student_kai
 
лекция№18
лекция№18лекция№18
лекция№18student_kai
 
лекция№16
лекция№16лекция№16
лекция№16student_kai
 
лекция№15
лекция№15лекция№15
лекция№15student_kai
 

More from student_kai (20)

презентация
презентацияпрезентация
презентация
 
презентации продолжение банкета
презентации продолжение банкетапрезентации продолжение банкета
презентации продолжение банкета
 
основы программирования на языке C
основы программирования на языке Cосновы программирования на языке C
основы программирования на языке C
 
лекция№34
лекция№34лекция№34
лекция№34
 
лекция№32
лекция№32лекция№32
лекция№32
 
лекция№33
лекция№33лекция№33
лекция№33
 
лекция№30
лекция№30лекция№30
лекция№30
 
лекция№29
лекция№29лекция№29
лекция№29
 
лекция№28
лекция№28лекция№28
лекция№28
 
лекция№27
лекция№27лекция№27
лекция№27
 
лекция№26
лекция№26лекция№26
лекция№26
 
лекция№25
лекция№25лекция№25
лекция№25
 
лекция№25
лекция№25лекция№25
лекция№25
 
лекция№22
лекция№22лекция№22
лекция№22
 
лекция№21
лекция№21лекция№21
лекция№21
 
лекция№20
лекция№20лекция№20
лекция№20
 
лекция№19
лекция№19лекция№19
лекция№19
 
лекция№18
лекция№18лекция№18
лекция№18
 
лекция№16
лекция№16лекция№16
лекция№16
 
лекция№15
лекция№15лекция№15
лекция№15
 

практика 6

  • 1. Практическое занятие 6 Асимптотический анализ 1. 2. 3. 4. Теоретические сведения Контрольные вопросы Указания по выполнению заданий Задания
  • 2. Теоретические сведения В анализе алгоритмов точное знание количества операций, выполненных алгоритмом, не играет существенной роли. Более важной характеристикой является скорость роста этого числа при возрастании объема входных данных. Она называется скоростью роста алгоритма. Скорость роста определяется старшим, доминирующим, членом формулы, описывающей сложность алгоритма. Поэтому можно пренебречь младшими членами, которые растут медленнее. Отбросив все младшие члены, получают то, что называется порядком функции или алгоритма, скоростью роста сложности которого она является. Алгоритмы можно сгруппировать по скорости роста их сложности: • алгоритмы, сложность которых растет по крайней мере так же быстро, как рассматриваемая функция; • алгоритмы, сложность которых растет с той же скоростью; • алгоритмы, сложность которых растет медленнее, чем эта функция.
  • 3. Теоретические сведения Класс функций, растущих по крайней мере так же быстро, как f, обозначают через Ω(f). Функция g принадлежит этому классу, если при, всех значениях аргумента n, больших некоторого порога n0 значение g(n) > cf(n) для некоторого положительного числа c. Класс функций, растущих не быстрее f, обозначается O(f). Функция f образует верхнюю границу для класса O(f). С формальной точки зрения функция g принадлежит классу O(f), если g(п) < cf(n) для всех n, больших некоторого порога n0, и для некоторой положительной константы c. Через Θ(f) обозначают класс функций, растущих с той же скоростью, что и f. С формальной точки зрения этот класс представляет собой пересечение двух предыдущих классов. Каждый из классов Ω(f), O(f) и Θ(f) является множеством, и поэтому имеет смысл выражение «g – элемент этого множества». В анализе, однако, нередко пишут g = O(f), что на самом деле означает g ∈ O(f).
  • 4. Теоретические сведения Верхняя асимптотическая граница, предоставляемая Oобозначениями, может описывать асимптотическое поведение функции с разной точностью. Граница 2n2 = O(n2) дает правильное представление об асимптотическом поведении функции, а граница 2n = O(n2) его не обеспечивает. Для обозначения того, что верхняя граница не является асимптотически точной оценкой функции, применяются o-обозначения. Формально функция g принадлежит классу o(f), если для любой положительной константы c существует такое положительное n0, что g(п) < cf(n) для всех n ≥ n0. Например: 2n = o(n2), но 2n2 ≠ o(n2). ω-обозначения соотносятся с Ω-обозначениями так же, как oобозначения с O-обозначениями. С помощью ωобозначений указывается нижний предел, не являющийся асимптотически точной оценкой. Функция g принадлежит классу ω(f), если для любой положительной константы c существует такое положительное n0, что при всех значениях аргумента n ≥ n0, значение g(n) > cf(n).
  • 5. Теоретические сведения Пример 1. Если дано f(t) = 5 + sin(t) и g(t) = 1, то 5 + sin(t) = Θ(1), так как 4 × 1 ≤ 5 + sin(t) ≤ 6 × 1. Между функциями Θ, O, Ω, o и ω существуют полезные отношения, некоторые из которых представлены ниже. Пусть f и g – положительные функции от n. Тогда, например: • f(n) = O(g(n)) ⇔ g(n) = Ω(f(n)); • f(n) = Θ(g(n)) ⇔ g(n) = Θ(f(n)); • f(n) = Θ(g(n)) ⇔ [f(n) = O(g(n)) и f(n) = Ω(g(n))]; • f(n) = o(g(n)) ⇔ g(n) = ω(f(n)); • f(n) = o(g(n)) ⇒ f(n) = O(g(n)), но обратное не верно; • f(n) = ω(g(n)) ⇒ f(n) = Ω(g(n)), но обратное не верно; • f(n) ограничено сверху и снизу положительными константами тогда и только тогда, когда f(n) = Θ(1) и др.
  • 6. Теоретические сведения Чтобы определить отношения между функциями f и g, часто бывает полезно определить значение предела L отношения f(n)/g(n) при n → ∞. Значение предела позволяет сделать ряд выводов. 1. L = 0. Это означает, что g(n) возрастает с большей скоростью, чем f(n), и отсюда f(n) = O(g(n)). 2. L = ∞. Это означает, что f(n) возрастает с большей скоростью, чем g(n), и отсюда f(n) = Ω(g(n)). 3. L ≠ 0 и ограничено. Это означает, что f(n) и g(n) возрастают с одинаковой скоростью и отсюда f(n) = Θ(g(n)) и g(n) = Θ(f(n)). 4. Предела не существует. Это означает, что данный метод нельзя использовать для определения асимптотической оценки между f(n) и g(n). Пример 2. Пусть f(n) = n(n + 1) / 2 и g(n) = n2. f(n) = Θ(g(n)) так как 1 1+ f ( n) n2 + n n =1 lim = lim = lim 2 n → ∞ g ( n) n → ∞ 2n n→∞ 2 2
  • 7. Контрольные вопросы 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Скорость роста алгоритмов. Порядок роста алгоритма. Категории алгоритмов по росту сложности. Класс Θ. Класс O. Класс Ω. Класс o. Класс ω. Отношения между классами Θ, O, Ω, o и ω. Анализ предела отношения функций.
  • 8. Указания по выполнению заданий 1. 2. 3. 4. Получить задание Получить решение задачи . Подготовить отчет по выполнению задания. Отчет должен включать задание и описание этапов выполнения задания. Ответить на вопросы по выполнению задания и контрольные вопросы
  • 9. Задания 1. Расположить следующее по возрастанию: n, n1/2, log2n, log2(log2n), (log2n)2, (1/3)n, 4, (3/2)n, n!. 2. Доказать или опровергнуть каждое из следующих утверждений: 1) f(n) = O(g(n)) ⇒ g(n) = o(f(n)); 2) f(n) + g(n) = Θ(max(f(n), g(n))); 3) f(n) = O((f(n))2); 4) f(n) = O(g(n)) ⇒ g(n) = Ω(f(n)); 5) f(n) + o(f(n)) = Θ(f(n)). 3. С помощью Θ, O, Ω, o и ω описать отношения между следующими парами функций: 1) (log2n)k, n, где k – положительная константа; 2) nk, cn, где k и c – константа k > 0, c > 1; 3) 2n, 2n/2. 4. Доказать, что 17n1/6 = O(n1/5). 5. Доказать, что n k 1 / 6 = Θ(n 7 / 6 ) ∑ k =1
  • 10. Задания 6. Показать, что для любых действительных констант a и b, где b > 0, справедливо соотношение (n + a)b = Θ(nb). 7. Доказать или опровергнуть утверждения 2n + 1 = O(2n) и 22n = O(2n). 8. Доказать, что время работы алгоритма равно Θ(g(n)) тогда и только тогда, когда время работы алгоритма в наихудшем случае равно O(g(n)), а время работы алгоритма в наилучшем случае равно Ω(g(n)). 9. Доказать, что множество o(g(n)) ∩ ω(g(n)) пустое.