¡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.
- ¿Cuáles son las mejores estructuras de datos para un índice espacial utilizado para averiguar en qué región de un espacio delimitado cae un nuevo punto dado?
- ¿Cuáles son los libros de Ciencias de la Computación (Algoritmo) que recomendará un topcoder?
- Cómo implementar este problema: Problema - C - Fuerzas de código
- Cómo resolver este problema de matrices en programación en C
- ¿Cuál es el tiempo de ejecución esperado de un algoritmo que genera aleatoriamente cadenas únicas de longitud D?