Ejercicios2-Analisis de Algoritmos

12
Instituto Politécnico Nacional. Escuela Superior de Cómputo. Unidad de Aprendizaje: Análisis de algoritmos. Titular: Edgardo Adrián Franco Martínez. Grupo: 3CM5. Alumno: Antonio David Reyna Martínez. Ejercicios 2: “Análisis temporal”.

description

Ejercicios resueltos de analisis de algortimos (analisis temporal)

Transcript of Ejercicios2-Analisis de Algoritmos

Pgina 11 de 11Anlisis de algoritmos. Ejercicios 02: Anlisis temporal.Antonio David Reyna Martnez. 3CM5.

Instituto Politcnico Nacional.

Escuela Superior de Cmputo.

Unidad de Aprendizaje:Anlisis de algoritmos.

Titular: Edgardo Adrin Franco Martnez.

Grupo: 3CM5.

Alumno: Antonio David Reyna Martnez.

Ejercicios 2: Anlisis temporal.

1. Ordenar tres nmerosDados tres nmeros enteros de entrada a, b y c, mostrarlos a la salida ordenados de forma descendente.a) Definir uno de los parmetros como tamao del problema, justifique su eleccin.b) Realice el anlisis temporal para el algoritmo en todos los casos.Procedimiento Ordena(a,b,c){if(a>b)if(a>c)if(b>c)salida(a,b,c);elsesalida(a,c,b);elsesalida(c,a,b);elseif(b>c)if(a>c)salida(b,a,c);elsesalida(b,c,a);elsesalida(c,b,a);}

a) Debido a que este procedimiento ordena nmeros por comparacin entre ellos, sin importar que nmeros sea por lo que el tamao del problema es n=3 siempre.b) Por la naturaleza del problema, sabemos que la operacin bsica es la comparacin entre los elementos.Mejor caso: Los tres nmeros son ingresados de forma ordenada descendentemente.Una comparacin falsa.Procedimiento Ordena(a,b,c){if(a>b)if(a>c)if(b>c)salida(a,b,c);elsesalida(a,c,b);elsesalida(c,a,b);elseif(b>c)if(a>c)salida(b,a,c);elsesalida(b,c,a);elsesalida(c,b,a);}

Una comparacin falsa.

ft(n)=2

Peor caso: Los tres nmeros son ingresados de forma ascendenteProcedimiento Ordena(a,b,c){if(a>b)if(a>c)if(b>c)salida(a,b,c);elsesalida(a,c,b);elsesalida(c,a,b);elseif(b>c)if(a>c)salida(b,a,c);elsesalida(b,c,a);elsesalida(c,b,a);}

Una comparacin verdadera.Una comparacin verdadera.Una comparacin verdadera.

ft(n)=3

Caso medio: Cada caso tiene la misma probabilidad de ocurrencia P=1/3Si se cumplen las primeras tres comparaciones: ft(n)=3Si se cumple las dos primeras comparaciones pero la tercera no: ft(n)=3 (2 verdaderas + 1 falsa).Si se cumple solo la primera comparacin: ft(n)=2 (1 verdadera + 1 falsa).Si no se cumple la primera comparacin pero si las ltimas dos:ft(n)=3 (1 falsa + 2 verdaderas). Si solo cumple la penltima comparacin:ft(n)=3 (1 falsa + 1 verdadera + 1 falsa ).Si no se cumple la primera ni la penltima:ft(n)=2 (2 falsas).

ft(n)=(1/3) (3+3+2+3+3+2)=16/3=5.33.

2. Elemento menor de una secuenciaEncontrar el elemento menor de una secuencia finita de enteros x1, x2, , xn.a) Definir uno de los parmetros como tamao del problema, justifique su eleccin.b) Realice el anlisis temporal para el algoritmo en todos los casos.Procedimiento BuscaMnimo(X){minimo=X[1]para j=2 hasta j>n hacersi X[j] < minimo hacerminimo = X[j]fin sifin para}

a) De acuerdo a la definicin del problema, podemos decir que el tamao de este es n=nmero de elementos de la secuencia de enteros. b) Las operaciones bsicas son la comparacin entre el elemento del arreglo y la variable minimo y la asignacin a esa variable.Mejor caso: El primer elemento del arreglo es el ms pequeo.Procedimiento BuscaMnimo(X){minimo=X[1]para j=2 hasta j>n hacersi X[j] < minimo hacerminimo = X[j]fin sifin para}

Una asignacin.

(n-1) comparaciones falsas.

ft(n)=1+(n-1)=n

Peor caso: El ltimo elemento del arreglo es el ms pequeo. Procedimiento BuscaMnimo(X){minimo=X[1]para j=2 hasta j>n hacersi X[j] < minimo hacerminimo = X[j]fin sifin para}

(n-1) comparaciones verdaderas.Una asignacin.

(n-1) asignaciones.

ft(n)=1+(n-1)+(n-1)=2n-1

Caso medio: Cada caso tiene la misma probabilidad de ocurrencia P=1/2ft(n)=1/2(n+2n-2)=1/2(3n-2)=1.5n-1

3. Ordenamiento burbuja simplePara el algoritmo de ordenamiento burbuja simple, efecte el anlisis temporal en todos los casos.Procedimiento BurbujaSimple(A,n)para i=1 hasta (i