Las frases tiempo mínimo y tiempo máximo son un poco engañosas aquí. Cuando hablamos de notaciones O grandes, no es el tiempo real lo que nos interesa, es cómo aumenta el tiempo cuando nuestro tamaño de entrada aumenta. Y generalmente es el tiempo promedio o en el peor de los casos del que estamos hablando, no en el mejor de los casos , que generalmente no es significativo para resolver nuestros problemas.
Usando la búsqueda de matriz en la respuesta aceptada a la otra pregunta como ejemplo. El tiempo que se tarda en encontrar un número particular en la lista de tamaño n es n / 2 * alguna_constante en promedio. Si lo trata como una función f(n) = n/2*some_constant
, no aumenta más rápido que g(n) = n
, en el sentido dado por Charlie. Además, aumenta no más lento que g(n)
ninguno de los dos. Por lo tanto, g(n)
es en realidad un límite superior y un límite inferior de f(n)
en notación Big-O, por lo que la complejidad de la búsqueda lineal es exactamente n , lo que significa que es Theta (n).
En este sentido, la explicación en la respuesta aceptada a la otra pregunta no es del todo correcta, que afirma que O (n) es un límite superior porque el algoritmo puede ejecutarse en tiempo constante para algunas entradas (este es el mejor caso que mencioné anteriormente, que no es realmente lo que queremos saber sobre el tiempo de ejecución).