Upgrade to Pro — share decks privately, control downloads, hide ads and more …

САКОД – 2 курс весна 2021 – 1 занятие

ТиМПИ
February 16, 2021

САКОД – 2 курс весна 2021 – 1 занятие

ТиМПИ

February 16, 2021
Tweet

More Decks by ТиМПИ

Other Decks in Programming

Transcript

  1. Анализ сложности и эффективности алгоритмов и структур данных 16 февраля

    2021 [email protected], [email protected] Валерий Дмитриевич Олисеенко, Максим Викторович Абрамов
  2. 2/15 Алгоритм Под алгоритмом понимается формально описанная вычислительная процедура, получающая

    исходные данные, называемые входными данными алгоритма, и выдающая результат вычислений на выход* *Федоряева Т. И. Комбинаторные алгоритмы: Учебное пособие / Новосиб. гос. ун-т. Новосибирск, 2011. 118 с.
  3. 3/15 Вопросы • Как сравнить два алгоритма? • Что такое

    вычислительная эффективность алгоритма? • Как оценить вычислительную эффективность алгоритма? • Какие существуют оценки эффективности алгоритма?
  4. 4/15 Трудоёмкость алгоритма Определим сложность, или трудоёмкость алгоритма решения задачи

    как функцию T от размерности данных n, ставящую в соответствие каждому n наибольшее время T(n) работы алгоритма на входных данных размерности n. Анализ эффективности каждого из алгоритмов заключается в выяснении вопроса: как быстро растёт функция T(n)с ростом n?
  5. 5/15 Асимптотический порядок роста Для некоторого алгоритма А при любых

    входных данных размера n этот алгоритм будет выполнен не более чем за 21n2+2,1n+9 шагов.
  6. 6/15 Асимптотические границы O — асимптотически верхняя граница Ω —

    асимптотически нижняя граница Θ — асимптотически точная граница
  7. 7/15 Асимптотически верхняя граница Пусть T(n)=pn2+qn+r, где p, q, r

    — положительные константы. Докажем, что асимптотически верхняя граница O(n). Для всех n>0 истинно qn≤qn2, r≤rn2. Отсюда следует T(n)=pn2+qn+r≤pn2+qn2+rn2=(p+q+r)n2, что соответствует неравенству O(⋅):T(n)≤cn2
  8. 8/15 Асимптотически точная граница Если функция T(n) одновременно имеет O(f(n))

    и Ω (f(n)), говорят, что T(n) имеет Θ(f(n)), a f(n) называется асимптотически точной границей для T(n). Иногда асимптотически точную границу можно вычислить как предел отношения двух функций при стремлении n к бесконечности.
  9. 9/15 Основные типы функций O(1) — сложность типа константа O(log(n))

    — логарифмическая сложность O(n) — линейная сложность O(nlog(n)) — сложность «n-log-n» O(n2) — квадратичная сложность O(n3) — кубическая сложность O(2n) — экспоненциальная сложность
  10. 10/15 Транзитивность и суммы функций • Транзитивность Если f=O(g)и g=O(h),

    то f=O(h) Если f=Ω(g)и g=Ω(h), то f=Ω(h) Если f=Θ(g)и g=Θ(h), то f=Θ(h) • Суммы функций Пусть f и g такие две функции, что для некоторой функции h выполняется такое условие f=O(h) и g=O(h). В этом случае f+g=O(h).
  11. 11/15 Упражнение Расположите функции по возрастанию скорости. Другими словами, если

    функция g(n) в вашем списке следует непосредственно после f(n), из этого следует, что f(n)=O(g(n)): f 1 (n)=10n f 2 (n)=n1/3 f 3 (n)=nn f 4 (n)=log 2 n f 5 (n)=2sqrt(lnn)
  12. Анализ сложности и эффективности алгоритмов и структур данных 16 февраля

    2021 [email protected], [email protected] Валерий Дмитриевич Олисиенко, Максим Викторович Абрамов