ebook img

Apuntes de Análisis y Diseño de Algoritmos PDF

174 Pages·2007·7 MB·Spanish
by  
Save to my drive
Quick download
Download
Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.

Preview Apuntes de Análisis y Diseño de Algoritmos

Apuntes de Análisis y Diseño de Algoritmos Conrado Martínez LSI-UPC Septiembre 2006 1 Análisis de Algoritmos 2 Divide y Vencerás 3 Estructuras de Datos 4 Algoritmos Voraces El análisis de algoritmos tiene como objetivo establecer propiedades sobre la eficiencia permitiendo la comparación entre soluciones alternativas y predecir los recursos que usará un algoritmo o ED. Consideremos el siguiente algoritmo para determinar el mínimo de un vector A de n elementos: i = 0; min = 0; while (i < n) { if (A[i] < A[min]) min = i; ++i; } // n = 0 y min = 0 (cid:243) // n > 0 y A[min] = m(cid:19)(cid:16)nfA[i] : 0 (cid:20) i < ng El número de operaciones elementales (comparaciones, asignaciones, sumas, etc.) que realiza es básicamente proporcional al número n de elementos del vector A y el tiempo de ejecución será, consecuentemente, de la forma a(cid:1)n+b. La “forma” del coste a(cid:1)n+b es independiente del hardware sobre el que se implementa, el sistema operativo, el lenguaje de programación, etc.; sólo las constantes a y b dependen de estos factores Para analizar algoritmos sólo contaremos el número de operaciones elementales, asumiendo que cada una de ellas consume una unidad de tiempo En general, la eficiencia de un algoritmo dependerá de cada entrada concreta, no sólo del tamaño de la entrada Dado un algoritmo A cuyo conjunto de entradas es A su eficiencia o coste (en tiempo, en espacio, en número de operaciones de E/S, etc.) es una función T de A en N (o Q ó R, según el caso): T : A ! N (cid:11) 7! T((cid:11)) Caracterizar la función T puede ser muy complicado y además proporciona información inmanejable, difícilmente utilizable en la práctica. Sea A el conjunto de entradas de tamaño n y n T : A ! N la función T restringida a A . n n n Coste en caso mejor: T (n) = m(cid:19)(cid:16)nfT ((cid:11))j(cid:11) 2 A g: mejor n n Coste en caso peor: T (n) = m(cid:19)axfT ((cid:11))j(cid:11) 2 A g: peor n n Coste promedio: T (n) = Pr((cid:11))T ((cid:11)) avg n (cid:11)X2An = k Pr(T = k): n k(cid:21)0 X 1 Para todo n (cid:21) 0 y para cualquier (cid:11) 2 An T (n) (cid:20) T ((cid:11)) (cid:20) T (n): mejor n peor 2 Para todo n (cid:21) 0 T (n) (cid:20) T (n) (cid:20) T (n): mejor avg peor Por lo general, estudiaremos el coste en caso peor de los algoritmos por dos razones: proporciona garantías sobre la eficiencia del algoritmo ya que el coste nunca excederá el coste en caso peor es más fácil de calcular que el coste promedio

Description:
hardware sobre el que se implementa, el sistema notaciones (omega) y ¢ (zita). El análisis de un algoritmo divide y vencerás requiere, al.
See more

The list of books you might like

Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.