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

Программирование – 1 курс осень 2021 – 5.1 занятие

ТиМПИ
October 08, 2021

Программирование – 1 курс осень 2021 – 5.1 занятие

ТиМПИ

October 08, 2021
Tweet

More Decks by ТиМПИ

Other Decks in Programming

Transcript

  1. 2/44 2/44 Алгоритм Под алгоритмом понимается формально описанная вычислительная процедура,

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

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

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

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

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

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

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

    O(log(n)) — логарифмическая сложность O(n) — линейная сложность O(nlog(n)) — сложность «n-log-n» O(n2) — квадратичная сложность O(n3) — кубическая сложность O(2n) — экспоненциальная сложность
  9. 10/44 10/44 Транзитивность и суммы функций • Транзитивность Если 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).
  10. 11/44 11/44 Упражнение Расположите функции по возрастанию скорости. Другими словами,

    если функция g(n) в вашем списке следует непосредственно после f(n), из этого следует, что f(n)=O(g(n)): f1 (n)=10n f2 (n)=n1/3 f3 (n)=nn f4 (n)=log2 n f5 (n)=2sqrt(ln(n))