Algoritmos - CAP1
Complejidad de algoritmos
Complejidad de algoritmos
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
18 TÉCNICAS DE DISEÑO DE ALGORITMOS
PROCEDURE Euclides(m,n:CARDINAL):CARDINAL;
VAR temp:CARDINAL;
BEGIN
WHILE m>0 DO (* 1 *)
temp:=m; (* 2 *)
m:=n MOD m; (* 3 *)
n:=temp (* 4 *)
END; (* 5 *)
RETURN n (* 6 *)
END Euclides;
PROCEDURE Misterio(n:CARDINAL);
VAR i,j,k,s:INTEGER;
BEGIN
s:=0; (* 1 *)
FOR i:=1 TO n-1 DO (* 2 *)
FOR j:=i+1 TO n DO (* 3 *)
FOR k:=1 TO j DO (* 4 *)
s:=s+2 (* 5 *)
END (* 6 *)
END (* 7 *)
END (* 8 *)
END Misterio;
a) Calcular sus tiempos de ejecución en el mejor, peor, y caso medio.
b) Dar cotas asintóticas O, Ω y Θ para las funciones anteriores.
1.6. Demostrar las siguientes inclusiones estrictas: O(1) ⊂ O(logn) ⊂ O(n) ⊂
O(nlogn) ⊂ O(n 2 ) ⊂ O(n 3 ) ⊂ O(n k ) ⊂ O(2 n ) ⊂ O(n!).
1.7. a) Demostrar que f ∈O(g) ⇔ g ∈Ω(f).
b) Dar un ejemplo de funciones f y g tales que f∈O(g) pero que f∉Ω(g).
c) Demostrar que ∀a,b>1 se tiene que log a n∈Θ(log b n).
1.8. Considérense las siguientes funciones de n:
f 1 (n) = n 2 ; f 2 (n) = n 2 + 1000n;
⎧n,
si n impar ⎧ n,
si n≤
100
f
3( n)
= ⎨
; f4(
n)
=
3
⎨ 3
⎩n
, si n par
⎩n
, si n>
100
Para cada posible valor de i,j indicar si f i ∈O(f j ) y si f i ∈Ω(f j ).