Escolar Documentos
Profissional Documentos
Cultura Documentos
edfranco@ipn.mx
Contenido
Casos en el valor de la funcin complejidad temporal Ejemplo 01:Productos Mayores Ejercicios 01: Anlisis temporal
01 Representacin binaria de un entero decimal positivo 02 Elemento menor de una secuencia 03 Ordenamiento burbuja 04 rbol binario de bsqueda
Anlisis de algoritmos Clase 06: Anlisis temporal (Ejercicios) Prof. Edgardo Adrin Franco Martnez
Sea: I(n)={I1, I2, I3, , Ik} el conjunto de instancias del problema de tamao n. O(n)={O1, O2, O3, , Ok} el conjunto formado por el nmero de operaciones que un algoritmo realiza para resolver cada instancia. Entonces, Oj es el nmero de operaciones ejecutadas para resolver la instancia Ij , para 1 j k. Se distinguen tres casos en el valor de la funcin complejidad temporal Peor caso ft(n) = mx ( { O1, O2, O3, , Ok } ) Mejor caso ft(n) = min( { O1, O2, O3, , Ok } )
= ()
Asignacion Asignacion
while(i<=n) if(A[i] > mayor1) mayor2 = mayor1; mayor1 = A[i]; else if (A[i] > mayor2) mayor2 = A[i]; i = i + 1; return = mayor1 * mayor2;
Anlisis de algoritmos Clase 04 y 05: Complejidad de algoritmos Prof. Edgardo Adrin Franco Martnez
func Producto2Mayores(A,n) if(A[1] > A[2]) mayor1 = A[1]; mayor2 = A[2]; else mayor1 = A[2]; mayor2 = A[1]; i = 3;
Anlisis Temporal
Anlisis de algoritmos Clase 06: Anlisis temporal (Ejercicios) Prof. Edgardo Adrin Franco Martnez
Mejor caso: ocurre cuando el arreglo est ordenado descendentemente (se realiza la primer comparacin y dos asignaciones, posteriormente solo se compara n-2 veces el if y n-2 veces el else if).
Comparaciones 1+(n-2)+(n-2) Asignaciones 2
99 71 23 20 18 n 15 11 5 3 1
ft(n)=1+(n-2)+(n-2)+2=3+2(n-2)=2n-1
func Producto2Mayores(A,n) if(A[1] > A[2]) mayor1 = A[1]; mayor2 = A[2]; else mayor1 = A[2]; mayor2 = A[1];
ft(2)=2(2)-1=3
ft(3)=2(3)-1=5
ft(5)=2(5)-1=9
i = 3;
while(i<=n) if(A[i] > mayor1) mayor2 = mayor1; mayor1 = A[i]; else if (A[i] > mayor2) mayor2 = A[i]; i = i + 1; return = mayor1 * mayor2;
ft(10)=2(10)-1=19 ft(20)=2(20)-1=39
Comparaciones 1+(n-2)
Asignaciones 2+2(n-2)
11
23
30
38 n
45
61
70
80
90
func Producto2Mayores(A,n) if(A[1] > A[2]) mayor1 = A[1]; mayor2 = A[2]; else mayor1 = A[2]; mayor2 = A[1]; i = 3; while(i<=n)
ft(2)=3(2)-3=3
ft(3)=3(3)-3=6 ft(5)=3(5)-3=12
if(A[i] > mayor1) mayor2 = mayor1; mayor1 = A[i]; else if (A[i] > mayor2) mayor2 = A[i]; i = i + 1;
return = mayor1 * mayor2;
ft(10)=3(10)-3=27 ft(20)=3(20)-3=57
Anlisis de algoritmos Clase 06: Anlisis temporal (Ejercicios) Prof. Edgardo Adrin Franco Martnez
Peor caso: el arreglo est ordenado de manera ascendente (se realiza la primer comparacin y dos asignaciones, posteriormente solo se compara n-2 veces el if y siempre se cumplir por lo que har 2(n-2) asignaciones. ft(n)=1+(n-2)+2(n-2)+2=3+3(n-2)=3n-3
Caso medio: en este problema se tienen ! casos, donde U es el conjunto del que se extraen los elementos del arreglo.
Determina el nmero de posibles conjuntos de n elementos del conjunto U. ! Determina el nmero de maneras de acomodar los n elementos Para hacer el clculo se deben de contar las operaciones que se haran en cada caso. (Laborioso y complicado)
Anlisis de algoritmos Clase 06: Anlisis temporal (Ejercicios) Prof. Edgardo Adrin Franco Martnez
El algoritmo hace siempre una comparacin al inicio y dos asignaciones y en el interior del ciclo puede ser que se realice una comparacin con dos asignaciones, dos comparaciones con una asignacin o dos comparaciones y ninguna asignacin; obsrvese que para cada A[i] puede ser cierta una de tres aseveraciones:
A[i] > mayor1: Se hace una comparacin y dos asignaciones A[i]mayor1 && A[i]>mayor2: Se hacen dos comparaciones y una asignacin A[i]mayor1 && A[i]mayor2 : Se hacen dos comparaciones
Caso medio
Caso: A[i] > mayor1
1 3 1 3 1 3
Anlisis de algoritmos Clase 06: Anlisis temporal (Ejercicios) Prof. Edgardo Adrin Franco Martnez
1 3 1 3
1 3 1 3
Caso medio: =
1
2 3 3 + (2n-1) =
ft(3)=5.6
8n 7
Es importante mencionar que no todos los algoritmos presentan casos, y resulta interesante tener una herramienta para detectar cundo se particionar el anlisis en casos; por el momento la nica ayuda con la que se cuenta es la intuicin y preguntarse: Se puede resolver el problema de manera trivial para alguna instancia especfica?. Si la respuesta es afirmativa el algoritmo tendr casos, por lo que el problema de deteccin se reduce a contestar esta simple pregunta.
Anlisis de algoritmos Clase 06: Anlisis temporal (Ejercicios) Prof. Edgardo Adrin Franco Martnez
10
1. Representacin binaria de un entero decimal positivo El algoritmo encuentra la representacin binaria de un entero decimal positivo. El algoritmo se basa en divisiones sucesivas por 2. As, para un entero positivo N se calcula:
N = 2q0 + r0 q0 = 2q1 + r1 q1 = 2q2 + r2 ... qk-1 = 2qk + rk
Donde cada residuo ri es 0 o 1. El algoritmo se detiene cuando qk=0. La representacin binaria es entonces N2=rkrk1r1r0.
11
12
a) Definir uno de los parmetros como tamao del problema, justifique su eleccin. b) Elija la o las operaciones bsicas para basar el anlisis temporal y calcule la complejidad temporal.
c) Muestre que si elige el valor del nmero N como el tamao del problema, el nmero de operaciones que requiere el algoritmo es
10 log 3
+ 1.
Anlisis de algoritmos Clase 06: Anlisis temporal (Ejercicios) Prof. Edgardo Adrin Franco Martnez
13
proc BuscaMnimo(X) { b=X[1]; for(j=2;j<=n;j++) { if(X[j] < b) { b = X[j]; //b = min{x1, x2, ... , xn} } } }
a) Sugerir una medida razonable, para el tamao del problema. b) Realice el anlisis temporal y espacial para el algoritmo en todos los casos.
Anlisis de algoritmos Clase 06: Anlisis temporal (Ejercicios) Prof. Edgardo Adrin Franco Martnez
2. Elemento menor de una secuencia Encontrar el elemento menor de una secuencia finita de enteros x1, x2, , xn.
14
4. rbol binario de bsqueda Para el algoritmo de bsqueda dentro de un rbol binario de bsqueda efecte el anlisis temporal y espacial en todos los casos.
*Se entregar antes del da Lunes 18 de Febrero de 2013 (23:59:59 hora limite) con el nombre: "NombreApellido_Ejercicios01". *Incluir la redaccin de cada ejercicio *Portada y encabezados de pagina.
15
Anlisis de algoritmos Clase 06: Anlisis temporal (Ejercicios) Prof. Edgardo Adrin Franco Martnez
3. Ordenamiento burbuja Para el algoritmo de ordenamiento denominado Burbuja, efecte el anlisis temporal y espacial en todos los casos.