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.
16 TÉCNICAS DE DISEÑO DE ALGORITMOS
1.5 PROBLEMAS PROPUESTOS
1.1. De las siguientes afirmaciones, indicar cuales son ciertas y cuales no:
(i) n 2 ∈O(n 3 ) (ix) n 2 ∈Ω(n 3 )
(ii) n 3 ∈O(n 2 ) (x) n 3 ∈Ω(n 2 )
(iii) 2 n+1 ∈O(2 n ) (xi) 2 n+1 ∈Ω(2 n )
(iv) (n+1)!∈O(n!) (xii) (n+1)!∈Ω(n!)
(v) f(n)∈O(n) ⇒ 2 f(n) ∈O(2 n ) (xiii) f(n)∈Ω(n) ⇒ 2 f(n) ∈Ω(2 n )
(vi) 3 n ∈O(2 n ) (xiv) 3 n ∈Ω(2 n )
(vii) logn ∈O(n 1/2 ) (xv) logn ∈Ω(n 1/2 )
(viii) n 1/2 ∈O(logn)
(xvi) n 1/2 ∈Ω(logn)
1.2. Sea a una constante real, 0<a<1. Usar las relaciones ⊂ y = para ordenar los
órdenes de complejidad de las siguientes funciones: nlogn, n 2 logn, n 8 , n 1+a ,
(1+a) n , (n 2 +8n+log 3 n) 4 , n 2 /logn, 2 n .
1.3. La siguiente ecuación recurrente representa un caso típico de un algoritmo
recursivo:
k
⎧cn
si1 ≤ n ≤ b
T ( n)
= ⎨
k
⎩aT
( n − b)
+ cn si n > b
donde a,c,k son números reales, n,b son números naturales, y a>0, c>0,
k≥0. En general, la constante a representa el número de llamadas recursivas
que se realizan para un problema de tamaño n en cada ejecución del
algoritmo; n–b es el tamaño de los subproblemas generados; y cn k
representa el coste de las instrucciones del algoritmo que no son llamadas
recursivas.
k
⎧Θ(
n ) si a < 1
⎪ k + 1
Demostrar que T ( n)
∈ ⎨Θ(
n ) si a = 1
⎪ n div b
⎩Θ(
a ) si a > 1
1.4. La siguiente ecuación recurrente representa un caso típico de Divide y
Vencerás:
k
⎧cn
si1 ≤ n < b
T ( n)
= ⎨
k
⎩aT
( n / b)
+ cn si n ≥ b
donde a,c,k son números reales, n,b son números naturales, y a>0, c>0,
k≥0, b>1. La expresión cn k representa en general el coste de descomponer
el problema inicial en a subproblemas y el de componer las soluciones para
producir la solución del problema original.