A notação Big O fornece um limite superior para uma função, enquanto Big Theta fornece um limite rígido. No entanto, acho que a notação Big O é tipicamente (e informalmente) ensinada e usada quando realmente significa Big Theta.
por exemplo, "Quicksort é O (N ^ 2)" pode se transformar na afirmação mais forte "Quicksort é Θ (N ^ 2)"
Embora o uso do Big O seja tecnicamente correto, um uso mais predominante do Big Theta não seria mais expressivo e levaria a menos confusão? Existe alguma razão histórica pela qual esse Big O é mais comumente usado?
Notas da Wikipedia :
Informalmente, especialmente na ciência da computação, a notação Big O geralmente pode ser um pouco abusada para descrever um vínculo estreito assintótico, onde o uso da notação Big Theta pode ser mais factualmente apropriado em um determinado contexto.
Respostas:
Porque você geralmente está apenas interessado no pior caso ao analisar o desempenho. Assim, conhecer o limite superior é suficiente.
Quando é executado mais rápido do que o esperado para uma determinada entrada - tudo bem, não é o ponto crítico. É principalmente informações insignificantes.
Alguns algoritmos, como observou Peter Taylor, não têm uma ligação rígida. Veja quicksort, por exemplo, que é O (n ^ 2) e Omega (n).
Além disso, limites apertados costumam ser mais difíceis de calcular.
Veja também:
fonte
Uma razão é que há muitos casos em que simplesmente não é conhecido. Por exemplo, a multiplicação da matriz é O (n ^ 2.376), mas não há um limite restrito conhecido. Claro, tanto quanto eu posso dizer, não é um apertado com destino a multiplicação de matrizes, mas não sabemos o seu valor.
fonte