¿Cuáles son los diferentes factores involucrados en el análisis del algoritmo?

El análisis de algoritmos se asemeja a otras disciplinas matemáticas en el sentido de que se centra en las propiedades subyacentes del algoritmo y no en los detalles de una implementación en particular.

Por lo general, el pseudocódigo se utiliza para el análisis, ya que es la representación más simple y más general. Sin embargo, en última instancia, la mayoría de los algoritmos generalmente se implementan en plataformas de hardware / software particulares y su eficiencia algorítmica se pone a prueba con el código real.

Para la solución de un problema “único”, la eficiencia de un algoritmo particular puede no tener consecuencias significativas (a menos que n sea extremadamente grande), pero para los algoritmos diseñados para un uso científico rápido, comercial o de larga vida puede ser crítico. Escalar de n pequeña a n grande con frecuencia expone algoritmos ineficientes que de otro modo serían benignos.

Las pruebas empíricas son útiles porque pueden descubrir interacciones inesperadas que afectan el rendimiento. Los puntos de referencia se pueden usar para comparar posibles mejoras antes / después de un algoritmo después de la optimización del programa.

Los dos principales serían la eficiencia y la legibilidad.

La eficiencia es qué tan bien funciona el algoritmo. Esto generalmente se analiza utilizando la notación Big O (notación Big O). Básicamente, dadas n entradas, ¿cuánto tiempo tarda su algoritmo en ejecutarse? Cuantos menos bucles anidados tenga, mejor será su notación Big O.

El segundo es la legibilidad. ¿Qué tan corto puedes hacer tu algoritmo? Hacerlo simple y fácil de entender tiene ventajas obvias.

Los diferentes factores que intervienen en el análisis de algoritmos son su complejidad temporal y la complejidad espacial.

Ejemplo: los algoritmos recursivos tienen a veces una complejidad de tiempo exponencial O (a ^ n) aunque tienen una complejidad espacial constante O (1). Por otro lado, utilizando un enfoque ascendente para esas preguntas similares de programación dinámica y algo de espacio extra, digamos O (n) y tiempo O (n), podemos obtener la misma salida.

Entonces, en resumen, debes decidir si quieres comprometer el tiempo o el espacio. Los problemas de desarrollo del juego comprometerían con más tiempo en lugar de espacio, ya que existe una limitación en el espacio. Como el tiempo exponencial y el espacio constante serían preferidos para el desarrollo del juego. Pero para otros tipos de problemas analíticos, no podemos comprometernos con el tiempo, por lo que se preferiría el tiempo lineal O (n) y el espacio lineal O (n).

More Interesting

¿Cuáles son algunos de los buenos libros sobre Algoritmos de aprendizaje automático de árbol de decisión?

¿Cuánto tiempo se necesita para leer Introducción a Algoritmos de TH Cormen, para un principiante?

¿Cuál es la diferencia entre Segment Tree y Fenwick Tree en términos de operaciones?

¿Cuál es la explicación intuitiva para agregar flujo en bordes inversos en el algoritmo de flujo máximo? ¿Por qué necesitamos eso?

¿Cómo debo estimar la eficiencia del enfoque DP?

¿Qué se puede lograr de los algoritmos de aprendizaje? ¿Conducirá a un individuo a ser un mejor programador?

¿Cuánta codificación necesito saber antes de comenzar con los algoritmos?

¿Qué tan valioso sería ser ubicado para aprender la estructura de datos usando C?

¿Cuál es la complejidad temporal de la solución del problema del vendedor ambulante mediante la optimización de colonias de hormigas?

¿Qué tipo de algoritmo de procesamiento del lenguaje natural se usaría para replicar los resultados de esta charla TED?

¿Cuáles son los algoritmos más utilizados en los que puedo confiar para mejorar mis habilidades de resolución de problemas?

Dado un problema, ¿cómo puedo decidir si usar un enfoque codicioso o dividir y conquistar?

¿Qué algoritmos de visión por computadora se utilizan en Protracer para el vuelo de una pelota de golf?

¿Es posible aplicar de manera eficiente algoritmos de aprendizaje automático para problemas de optimización combinatoria?

Si recibe fondos de miles de millones de dólares y tiene la tarea de crear un motor de búsqueda para competir con Google, ¿cómo sería su motor de búsqueda?