¿Cuál es la mejor manera de usar la notación O grande para determinar la tasa de crecimiento del tiempo de ejecución de un algoritmo?

¡La mejor manera es la correcta!
La idea aquí es relacionar la cantidad de trabajo que realiza un algoritmo con el tamaño de su entrada. Esto permite razonar acerca de la eficiencia del algoritmo cuando se trata de entradas grandes y seleccionar algoritmos apropiados para sus tareas. Por ejemplo, usar un algoritmo con O (n ^ 3) con un conjunto de datos de rápido crecimiento es probablemente un error, ya que duplicar la entrada aumentaría el tiempo de ejecución en un orden de magnitud.

La notación Big O le permite describir un “límite superior” de complejidad o un comportamiento en el peor de los casos y relacionar su relación (probablemente muy compleja) entre el tamaño de entrada y el tiempo de ejecución con una función bien entendida (generalmente polinómica).

Adjunto un enlace a un conjunto de notas sobre la complejidad asintótica para el curso 6.006 del MIT (algoritmos). Estos explican el uso básico de la notación asintótica. Espero que esto ayude.

No utiliza la notación O grande para determinar algo: la usa para escribir la respuesta, una vez que la ha determinado. Algunas respuestas son mucho más comunes que otras.

More Interesting

Soy bueno en algoritmos y estructuras de datos, ¿cuál debería ser mi estrategia para comenzar una carrera independiente en este dominio?

¿Es difícil implementar un árbol de radix? Si es así, ¿por qué?

Cómo elegir el algoritmo de selección de funciones correcto

¿Cuál es un ejemplo interesante del patrón de red del mundo pequeño?

¿Cuáles son algunos buenos algoritmos para agrupar palabras que suenan similares?

En Python, ¿cómo reemplazo una cadena en el texto sin reemplazar las subcadenas?

En la programación de computadoras, ¿es cierto que una recursión funcionará mejor para encontrar todas las rutas posibles que los bucles anidados?

¿Cuál es la complejidad del algoritmo criptográfico RSA?

¿Cómo funcionan los algoritmos de procesamiento de cadenas en CUDA?

Cómo contar en binario

¿Cuál es la diferencia entre el algoritmo que venció a los humanos en el ajedrez y el algo que venció a los humanos en Go?

¿Qué algoritmos de minería de datos puedo usar para maximizar las ganancias de una compañía de tarjetas de regalo que almacena ventas, pedidos y datos de clientes en una base de datos relacional?

¿Cómo podemos generar un número aleatorio con igual probabilidad en el rango [1 ... n] st, no pertenece al conjunto inválido de números S = {xi | 1 <= xi <= n e i [matemáticas] \ en [/ matemáticas] [1… k] yk <n} utilizando la memoria O (k); siempre que podamos llamar a la función aleatoria solo una vez?

¿Qué es particionar en chispa, por qué lo necesitamos?

¿Hay números irracionales de distribución uniforme no repetitivos para los cuales el dígito n puede calcularse en O (1) tiempo?