La complejidad algortmica representa la cantidad de recursos temporales que
se puede usar, que realmente necesita un algoritmo, para as llevar acabo la solucin de un problema y por lo tanto permite determinar la eficiencia de dicho algoritmo. -Eficiencia: Hace referencia a la ejecucin de un programa resultante as como tambin el espacio que consume, tiene que ser lo menos posible para el ordenador ya sea memoria, tiempo de CPU. -Complejidad: La cantidad de recursos temporales que se usan y se necesitan en un algoritmo. -Espacio y tiempo: Son los recursos que suelen medirse en funcin de dos parmetros que son el espacio y el tiempo, el espacio es decir memoria que utiliza y el tiempo lo que tarda en ejecutarse ambos representan los costes que supone encontrar la solucin al problema planteado mediante un algoritmo. Principio de la Invarianza: Principio de Invarianza afirma que existe una constante real c > 0 y un nmero natural n0 tales que para todo n n0 se verifica que T1(n) cT2(n), es decir el tiempo de la ejecucin de dos implementaciones distintas de un algoritmo dado no va a diferir ms que en una constante multiplicativa.
ANLISIS A POSTERIORI ANLISIS A PRIORI
Ofrece una medida real, consistente Proporciona una medida terica, que en medir el tiempo de ejecucin del consiste en obtener una funcin que algoritmo para unos valores de acote (por arriba o por abajo) el entrada dados y en un ordenador tiempo de ejecucin del algoritmo concreto. para unos valores de entrada dados.
El comportamiento de un algoritmo puede cambiar notablemente para
diferentes entradas pues para muchos programas el tiempo de ejecucin es en realidad una funcin de la entrada especfica, y no slo del tamao de sta. Que son tres casos para un mismo algoritmo: caso peor, caso mejor y caso medio. -Caso mejor: Corresponde a la traza (secuencia de sentencias) del algoritmo que realiza menos instrucciones.
-Peor caso: Corresponde a la traza del algoritmo que realiza ms instrucciones,
lo cual nos asegura que al menos el algoritmo se desempear de esa forma. -Caso medio: Corresponde a la traza del algoritmo que realiza un nmero de instrucciones igual a la esperanza matemtica de la variable aleatoria definida por todas las posibles trazas del algoritmo para un tamao de la entrada dado, con las probabilidades de que stas ocurran para esa entrada. Esta es la medida ms difcil de calcular pues debemos saber cmo estn distribuidos los datos. Por otra parte, sino conocemos la distribucin de las entradas, entonces la mejor opcin es analizar el caso peor. -Operaciones elementales: Cuando se va medir el tiempo, siempre se har con la funcin de operaciones elementales que realiza el algoritmo dado, entendiendo por operaciones elementales aquellas que el ordenador realiza en tiempo acotado por una constante. As, consideraremos operaciones elementales las operaciones aritmticas bsicas, asignaciones a variables de tipo predefinido por el compilador, los saltos (llamadas a funciones y procedimientos, retorno desde ellos, etc.), las comparaciones lgicas y el acceso a estructuras indexadas bsicas, como son los vectores y matrices. Cada una de ellas contabilizar como 1 operacin elemental. Resumiendo, el tiempo de ejecucin de un algoritmo va a ser una funcin que mide el nmero de operaciones elementales que realiza el algoritmo para un tamao de entrada dado.