¿Qué enunciado describe mejor por qué la notación Big-O es una forma muy útil de analizar la complejidad del algoritmo?

Las anotaciones BigO (en la teoría de la informática) permiten clasificar para un conjunto dado de entradas, qué orden de magnitud tomaría el algoritmo en tiempo de ejecución (y / o espacio-tiempo). Permite tomar las mejores decisiones para elegir un algoritmo dado para un problema en particular o conocer sus limitaciones de antemano.

Considere los ejemplos triviales de varios algoritmos de clasificación y búsqueda, la notación BigO permitiría describir por qué la clasificación por fusión puede ser mejor o peor que la clasificación rápida y / o mejor o peor que la clasificación por burbujas.

Como usuario de algoritmos de búsqueda, por ejemplo, lo ideal sería utilizar una estructura de datos que se ejecute en O (1) (por ejemplo, tabla hash o tabla de búsqueda). ¿O es aceptable que el tiempo de ejecución sea O (log n), que es aplicable en una búsqueda de árbol binario ordenado. O para ordenar ejemplos, habrá restricciones de memoria o restricciones de tiempo de ejecución o ambas. Si mi tamaño de entrada es menor y mis requisitos de memoria son menores, ¿sería aceptable elegir un tipo de ejecución lenta?

Como parte del análisis y diseño de algoritmos en Ciencias de la Computación, tenemos que entender cuál es la complejidad de cada algoritmo en términos de notación Big O (o cómo llegar a la notación Big O en primer lugar para un algoritmo dado). Luego, realiza compensaciones analizando varios algoritmos para una solución particular de un problema.

Espero que esto te de algunas ideas.