В чем разница между O, Ω и Θ?

Я изучаю алгоритм анализа. У меня проблемы с пониманием разницы между O, Ωи Θ.

То, как ониПереопределено следующее:

f(n) = O(g(n)) средстваc · g(n) верхняя границаf(n), Таким образом, существует некоторая постояннаяc такой, чтоf(n) всегда ≤ c · g(n)достаточно большойn (Т.е.n ≥ n0 для некоторой константыn0).f(n) = Ω(g(n)) средстваc · g(n) нижняя границаf(n), Таким образом, существует некоторая постояннаяc такой, чтоf(n) всегда ≥ c · g(n), для всех .n ≥ n0f(n) = Θ(g(n)) средстваc1 · g(n) верхняя границаf(n) а такжеc2 · g(n) нижняя границаf(n), для всехn ≥ n0, Таким образом, существуют константыc1 а такжеc2 такой, чтоf(n) ≤ c1 ·g(n) а такжеf(n) ≥ c2 ·g(n), Это означает, чтоg(n) обеспечивает хорошую, жесткую связь.f(n)

Я понял это так:

O(f(n)) дает сложность данной функции / алгоритма в худшем случае.Ω(f(n)) дает лучший случай сложности данной функции / алгоритма.Θ(f(n)) дает среднюю сложность случая данной функции / алгоритма.

Пожалуйста, поправьте меня, если я ошибаюсь. Если это так, временная сложность каждого алгоритма должна быть выражена во всех трех обозначениях. Но я заметил, что этоs выражается как O, Ωили Θ; почему не все три?

Ответы на вопрос(5)

Ваш ответ на вопрос