¿Qué es el análisis de algoritmo?
El análisis de algoritmos es un campo de la informática que se dedica a comprender la complejidad de los algoritmos. Los algoritmos generalmente se definen como procesos que realizan una serie de operaciones con un fin. Los algoritmos se pueden expresar de muchas maneras, en diagramas de flujo, un lenguaje natural y lenguajes de programación de computadoras. Los algoritmos se usan en matemáticas, computación y lingüística, pero el uso más común es en computadoras para hacer cálculos o procesar datos. El análisis de algoritmos trata con algoritmos escritos en lenguajes de programación de computadoras, que se basan en formalismo matemático
Un algoritmo es esencialmente un conjunto de instrucciones para que una computadora realice un cálculo de cierta manera. Por ejemplo, una computadora usaría un algoritmo para calcular el sueldo de un empleado. Para que la computadora realice los cálculos, necesita que se ingresen datos apropiados en el sistema, como la tasa salarial del empleado y la cantidad de horas trabajadas.
Es posible que más de un algoritmo funcione para realizar la misma operación, pero algunos algoritmos usan más memoria y tardan más en realizarse que otros. Además, ¿cómo sabemos qué tan bien funcionan los algoritmos en general, dadas las diferencias entre las computadoras y las entradas de datos? Aquí es donde entra el análisis de algoritmos.
Una forma de probar un algoritmo es ejecutar un programa de computadora y ver qué tan bien funciona. El problema con este enfoque es que solo nos dice qué tan bien funciona el algoritmo con una computadora en particular y un conjunto de entradas. El propósito del análisis de algoritmos es probar y luego sacar conclusiones sobre qué tan bien funciona un algoritmo particular en general. Esto sería muy difícil y llevaría mucho tiempo hacerlo en computadoras individuales, por lo que los investigadores diseñan modelos de funcionamiento de la computadora para probar algoritmos.
En general, el análisis de algoritmos se preocupa más por descubrir cuánto tiempo tarda un programa en ejecutarse y cuánto espacio de almacenamiento de memoria necesita para ejecutar el programa. En particular, los informáticos utilizan el análisis de algoritmos para determinar cómo los datos imputados a un programa afectan su tiempo de ejecución total, cuánto espacio de memoria necesita la computadora para los datos del programa, cuánto espacio ocupa el código del programa en la computadora, si un algoritmo produce el correcto cálculos, qué tan complejo es un programa y qué tan bien maneja resultados inesperados.