|
COMPLEJIDAD ALGORÍTMICA
Existen muchas alternativas de solución para un problema, debemos seleccionar el algoritmo más eficiente con el mejor conjunto de pasos, que su tiempo de ejecución sea el menor y cuyas líneas de código sean las menos posibles. A simple vista parece algo muy simple, pero a medida que un programa crece, se requiere una medición más exacta y apropiada, para esto se realizan ciertas operaciones matemáticas que establecen la eficiencia teórica del programa, al estudio de estos casos se denomina Complejidad Algorítmica. La complejidad algorítmica representa la cantidad de recursos (temporales y espaciales) que necesita un algoritmo para resolver un problema y por tanto permite determinar la eficiencia de dicho algoritmo, pero son medidas relativas al tamaño del problema. 2. Complejidad Espacial: Memoria que utiliza un programa para su ejecución, indica la cantidad de espacio requerido para ejecutar el algoritmo; es decir, el espacio en memoria que ocupan todas las variables propias al algoritmo. Para calcular la memoria estática de un algoritmo se suma la memoria que ocupan las variables declaradas en el algoritmo. Para el caso de la memoria dinámica, el cálculo no es tan simple ya que, este depende de cada ejecución del algoritmo. Nosotros estudiaremos las complejidades temporales, con este fin, para cada problema determinaremos una medida N, que llamaremos tamaño de la entrada o número de datos a procesar por el programa, intentaremos hallar respuestas en función de dicha N. |