О, Θ и Ω обозначения представляют собой связанные, но совершенно разные понятия. O-нотация выражает асимптотическую верхнюю границу относительно скорости роста функции; он говорит, что функция в конечном счете ограничена сверху некоторым постоянным кратным некоторой другой функции. Ω Обозначение похоже, но дает нижнюю границу. Θ обозначение дает асимптотическую ограниченную границу - при достаточно больших входах алгоритм растет со скоростью, ограниченной и сверху, и снизу константой, кратной функции.
Если F (п) = О (г (п)), это не всегда верно, что Р (п) = Ω (г (п)), или, что Р (п) = Θ (г (п)). Например, 1 = О (п), но 1 ≠ Ω (п), потому что п растет быстрее, чем строго 1.
Если вы обнаружили, что Р (п) = О (г (п)) и Ω (час (n)), где g (n) h (n), вам может потребоваться более точный анализ для определения функции j (n) такой, что f (n) = Θ (j (n)). Если g (n) = Θ (h (n)), то вы можете заключить, что f (n) = Θ (g (n)), но если верхняя и нижняя границы различны, механический способ определения Θ скорость роста функции.
Надеюсь, это поможет!