Documentos de Académico
Documentos de Profesional
Documentos de Cultura
23 Marzo 2017
1. Correctitud
P1. Demuestre que el Algoritmo de Euclides para la obtencion del Maximo Com
un Divisor entre dos n
umeros
es correcto.
Resp:
Lo primero que se debe demostrar es que el algoritmo termina: Como se puede ver en la lnea (1) el
programa dejar a de iterar cuando la variable b sea igual a 0. Como inicialmente la variable b revise el
elemento menor, si este es 0 el programa retorna a (por definicion de Identidad de MCD: mcd(a,0) =
mcd(0,a) = a). En el caso que b sea distinto de 0, b recibira el valor del residuo de dividir a/b, el
cual siempre estara en el intervalo 0 <= r < b, por lo que despues de un numero finito de iteraciones (en
el peor caso, b iteraciones) siempre llegara a ser 0.
El algortimo termina.
Para demostrar que algoritmo entrega el valor esperado, debemos identificar la siguiente invariante.
1
2. Notaci
on de Complejidad
P2. Proporcione un an
alisis asint
otico de peor caso en notacion O() para el tiempo de ejecucion de los siguientes
fragmentos de programa.
1)
para i = 0 to 2n hacer
xx+1
fin para
Resp:
Como la asignaci
on de x se realiza:
2n
X
1 = 2n + 1 veces
i=0
El tiempo de ejecuci
on es O(n)
2)
para i=0 to 2n hacer
para j=1 to n hacer
xx+1
fin para
fin para
Resp:
Como la asignaci
on de x se realiza:
X n
2n X 2n
X
1= n = (2n + 1)n = 2n2 + n veces
i=0 j=1 i=0
on es O(n2 )
El tiempo de ejecuci
3)
para i = 1 to n hacer
para j = 1 to i hacer
para k = 1 to j hacer
xx+1
fin para
fin para
fin para
Resp:
Como la asignaci
on de x se realiza:
n X j
i X n X
i n n n
X X X i(i + 1) 1X 2 1X
1= j= = i + i=
i=1 j=1 k=1 i=1 j=1 i=1
2 2 i=1 2 i=1
2
on es O(n3 )
El tiempo de ejecuci
4)
para i = 1 to n hacer
para j = 1 to i hacer
para k = 1 to i hacer
xx+1
fin para
fin para
fin para
Resp:
Como la asignaci
on de x se realiza:
n X
i X
i n X
i n
X X X n(n + 1)(2n + 1) 2n3 + 3n2 + n
1= i= i2 = = veces
i=1 j=1 k=1 i=1 j=1 i=1
6 6
on es O(n3 )
El tiempo de ejecuci
5)
i=n
mientras i 1 hacer
xx+1
i i/2
fin mientras
Resp:
En este algoritmo el conjunto se va dividiendo en mitades, por lo que la asignacion de x se realiza:
log2 n veces
El tiempo de ejecuci
on es O(log n)
3
6)
j=n
mientras j 1 hacer
para i = 1 to j hacer
xx+1
fin para
j j/3
fin mientras
Resp:
Como la asignaci
on de x se realiza:
log3 n log3 n
X n X 1
j
= n
j=1
3 j=1
3j
Serie Geometrica:
log3 n j
X 1 (1/3)logn+1 1 1 (1/3) (1/3)logn 2/3 1/3 1/3n n1
= 1= = =
j=1
3 2/3 2/3 2/3 2n
log3 n
X 1 n1 n1
n =n =
j=1
3j 2n 2
El tiempo de ejecuci
on es O(n)
7)
i=n
mientras i 1 hacer
para j = 1 to n hacer
xx+1
fin para
i i/2
fin mientras
Resp:
Como la asignaci
on de x se realiza:
logn
XX n logn
X logn
X
1= n=n 1 = (n logn) veces
i=1 j=1 i=1 i=1
El tiempo de ejecuci
on es O(nlogn)