Si y no.
La notación Big O tiene que ver con el límite de rendimiento de una función, ya que la entrada tiende hacia el infinito. En la práctica, no se utiliza la definición más estricta de complejidad; en su lugar, buscamos el término que más representa la forma en que un algoritmo se escala en relación con el tamaño de entrada.
Hay dos reglas simples que debemos seguir:
- Además de la velocidad, ¿qué otras medidas de eficiencia se podrían usar en un entorno real?
- ¿Deberíamos memorizar algoritmos, o simplemente saber cómo implementarlos?
- ¿Por qué usamos el árbol de búsqueda binario?
- ¿Cuáles son algunas estrategias para principiantes para los algoritmos comerciales?
- ¿Por qué se ejecuta un análisis de tiempo de un algoritmo llamado asintótico?
- En el caso de que la complejidad estricta sea una suma de términos, conservamos solo el término de orden superior y descartamos los términos de orden inferior. Esto se debe al hecho de que los términos de orden inferior generalmente representan un impacto trivial en el rendimiento a medida que aumenta la entrada.
- Del mismo modo, si se trata de un producto, descartamos cualquier constante (este sería el caso en su ejemplo). Hacemos esto porque las constantes no nos proporcionan información sobre cómo se escala el algoritmo.
Claro, si c es mayor que 1, la función representada por la expresión en el lado izquierdo de su ecuación siempre será igual o más lenta que la función representada por el lado derecho. Sin embargo, ambos se escalarán linealmente y, por lo tanto, se consideran de igual complejidad.
¡Espero que eso aclare las cosas!