Большой O дает только верхнюю асимптотическую границу, в то время как большой Theta также дает нижнюю границу.
Все, что Theta(f(n))
, также является O(f(n))
, но не наоборот.
T(n)
называется Theta(f(n))
, если одновременно O(f(n))
и Omega(f(n))
По этой причине нотация big-Theta более информативна, чем нотация big-O, поэтому, если мы можем сказать, что что-то является big-Theta, обычно это предпочтительнее. Однако доказать, что что-то является большим Тета, труднее, чем доказать, что это большое О.
Например, пример, сортировка слиянием имеет одновременно O(n*log(n))
и Theta(n*log(n))
, но также O(n2), так как n2 асимптотически "больше" его. Однако это НЕ тета (n2), поскольку алгоритм НЕ является омега (n2).
Omega(n)
— это асимптотическая нижняя граница. Если T(n)
равно Omega(f(n))
, это означает, что из определенного n0
существует константа C1
такая, что T(n) >= C1 * f(n)
. В то время как big-O говорит, что существует константа C2
такая, что T(n) <= C2 * f(n))
.
Все три (Omega, O, Theta) дают только асимптотическую информацию ("для больших входных данных"):
- Большой O дает верхнюю границу
- Большая Омега дает нижнюю границу и
- Big Theta дает как нижнюю, так и верхнюю границу
Обратите внимание, что это обозначение не связано с анализом алгоритмов в наилучшем, наихудшем и среднем случаях. Каждый из них может быть применен к каждому анализу.
person
amit
schedule
27.08.2012
Theta(f(n))
, если наихудший случай и наилучший случай идентичны, мы говорим, что этоTheta(f(n))
наихудший случай (например), если наихудший случай одновременноO(f(n))
иOmega(f(n))
, независимо от поведение в лучшем случае. - person amit   schedule 27.08.2012Theta(n^2)
, так как вы можете указать нижнюю границу того, сколько операций потребуется для наихудшего случая ввода (массив с обратным порядком), и он будет квадратичным по количеству элементы. Нет смысла говорить о сложности алгоритма, не указывая, по какому анализу он рассчитывается. Обычно, когда анализ опускается - это неявно означает, что сложность вычисляется при анализе наихудшего случая. Если мы используем это соглашение, сортировка вставками будетTheta(n^2)
[в этом утверждении подразумевается анализ наихудшего случая]. - person amit   schedule 27.08.2012Theta(n)
наихудший случай иTheta(1)
средний [для простоты предполагается, что повторное хеширование не требуется] - person amit   schedule 27.08.2012