La notación Big O proporciona un límite superior a una función, mientras que Big Theta proporciona un límite ajustado. Sin embargo, encuentro que la notación Big O es típicamente (e informalmente) enseñada y utilizada cuando realmente significan Big Theta.
por ejemplo, "Quicksort es O (N ^ 2)" puede convertirse en la afirmación mucho más fuerte "Quicksort es Θ (N ^ 2)"
Si bien el uso de Big O es técnicamente correcto, ¿no sería un uso más frecuente de Big Theta más expresivo y generaría menos confusión? ¿Hay alguna razón histórica por la cual esta Big O se usa más comúnmente?
Notas de Wikipedia :
Informalmente, especialmente en ciencias de la computación, a menudo se permite abusar de la notación Big O para describir un límite estrecho asintótico donde usar la notación Big Theta Θ podría ser más apropiado en un contexto dado.
Respuestas:
Porque generalmente solo te interesa el peor de los casos al analizar el rendimiento. Por lo tanto, conocer el límite superior es suficiente.
Cuando se ejecuta más rápido de lo esperado para una entrada determinada, está bien, no es el punto crítico. Es sobre todo información insignificante.
Algunos algoritmos, como señaló @Peter Taylor, no tienen un límite estricto en absoluto. Vea la clasificación rápida, por ejemplo, que es O (n ^ 2) y Omega (n).
Además, los límites estrechos suelen ser más difíciles de calcular.
Ver también:
fuente
Una razón es que hay muchos casos en los que Θ simplemente no se conoce. Por ejemplo, la multiplicación de matrices es O (n ^ 2.376) pero no se conoce un límite apretado. Seguro, por lo que yo puedo decir, no es un apretado con destino a la multiplicación de matrices, pero no sabemos su valor.
fuente