Está en la página 1de 22

Conceptos Fundamentales del Análisis de

Algoritmos II

Dr. Eduardo A. R ODRÍGUEZ T ELLO

C INVESTAV-Tamaulipas

17 de enero de 2018

Dr. Eduardo R ODRÍGUEZ T. (C INVESTAV) Conceptos Fundamentales del Análisis II 17 de enero de 2018 1 / 20
1 Conceptos fundamentales del análisis de algoritmos II
Orden de crecimiento asintótico
Comparación de ordenes de crecimiento con límites
Ordenes de crecimiento de funciones importantes
Clases básicas de eficiencia asintótica
Tarea 3

Dr. Eduardo R ODRÍGUEZ T. (C INVESTAV) Conceptos Fundamentales del Análisis II 17 de enero de 2018 2 / 20
Conceptos fundamentales del análisis de algoritmos II Orden de crecimiento asintótico

1 Conceptos fundamentales del análisis de algoritmos II


Orden de crecimiento asintótico
Comparación de ordenes de crecimiento con límites
Ordenes de crecimiento de funciones importantes
Clases básicas de eficiencia asintótica
Tarea 3

Dr. Eduardo R ODRÍGUEZ T. (C INVESTAV) Conceptos Fundamentales del Análisis II 17 de enero de 2018 3 / 20
Conceptos fundamentales del análisis de algoritmos II Orden de crecimiento asintótico

Orden de crecimiento asintótico

Una forma de comparar funciones que ignora factores constantes


y tamaños de entradas pequeños
O(g(n)): clase de funciones f (n) que crecen no más rápido que
g(n)
1
n ∈ O(n2 ), 100n + 5 ∈ O(n2 ), 2
2 n(n − 1) ∈ O(n ).

Θ(g(n)): clase de funciones f (n) que crecen a la misma tasa que


g(n)
an2 + bn + c ∈ Θ(n2 ), n2 + sin n ∈ Θ(n2 ), n2 log n ∈ Θ(n2 ).

Ω(g(n)): clase de funciones f (n) que crecen al menos tan rápido


como g(n)
1
n3 ∈ Ω(n2 ), 2
2 n(n − 1) ∈ Ω(n ), / Ω(n2 ).
100n + 5 ∈

Dr. Eduardo R ODRÍGUEZ T. (C INVESTAV) Conceptos Fundamentales del Análisis II 17 de enero de 2018 4 / 20
Conceptos fundamentales del análisis de algoritmos II Orden de crecimiento asintótico

Orden de crecimiento asintótico, Gran-O

t(n) ≤ cg(n), para toda n ≥ n0


Dr. Eduardo R ODRÍGUEZ T. (C INVESTAV) Conceptos Fundamentales del Análisis II 17 de enero de 2018 5 / 20
Conceptos fundamentales del análisis de algoritmos II Orden de crecimiento asintótico

Orden de crecimiento asintótico, Gran-Omega

t(n) ≥ cg(n), para toda n ≥ n0


Dr. Eduardo R ODRÍGUEZ T. (C INVESTAV) Conceptos Fundamentales del Análisis II 17 de enero de 2018 6 / 20
Conceptos fundamentales del análisis de algoritmos II Orden de crecimiento asintótico

Orden de crecimiento asintótico, Gran-Theta

c2 g(n) ≤ t(n) ≤ c1 g(n), para toda n ≥ n0


Dr. Eduardo R ODRÍGUEZ T. (C INVESTAV) Conceptos Fundamentales del Análisis II 17 de enero de 2018 7 / 20
Conceptos fundamentales del análisis de algoritmos II Orden de crecimiento asintótico

Orden de crecimiento asintótico, ejercicio 1

Utilice la notación más apropiada entre O, Θ y Ω para indicar la


clase de eficiencia temporal del algoritmo de búsqueda secuencial

Dr. Eduardo R ODRÍGUEZ T. (C INVESTAV) Conceptos Fundamentales del Análisis II 17 de enero de 2018 8 / 20
Conceptos fundamentales del análisis de algoritmos II Orden de crecimiento asintótico

Orden de crecimiento asintótico, ejercicio 1

Utilice la notación más apropiada entre O, Θ y Ω para indicar la


clase de eficiencia temporal del algoritmo de búsqueda secuencial
Respuestas:

Cworst (n) = n, Cworst (n) ∈ Θ(n)


Cbest (n) = 1, Cbest (n) ∈ Θ(1)
p(n+1) p p
Cavg (n) = 2 + n(1 − p) = (1 − 2 )n + 2, Cavg (n) ∈ Θ(n)

Dr. Eduardo R ODRÍGUEZ T. (C INVESTAV) Conceptos Fundamentales del Análisis II 17 de enero de 2018 8 / 20
Conceptos fundamentales del análisis de algoritmos II Orden de crecimiento asintótico

Orden de crecimiento asintótico, ejercicio 2

De las siguientes afirmaciones cuáles son verdaderas y cuáles son


falsas:
1 n(n + 1)/2 ∈ O(n3 )
2 n(n + 1)/2 ∈ O(n2 )
3 n(n + 1)/2 ∈ Θ(n3 )
4 n(n + 1)/2 ∈ Ω(n3 )
5 n(n + 1)/2 ∈ Ω(n)

Dr. Eduardo R ODRÍGUEZ T. (C INVESTAV) Conceptos Fundamentales del Análisis II 17 de enero de 2018 9 / 20
Conceptos fundamentales del análisis de algoritmos II Orden de crecimiento asintótico

Orden de crecimiento asintótico, ejercicio 2

De las siguientes afirmaciones cuáles son verdaderas y cuáles son


falsas:
1 n(n + 1)/2 ∈ O(n3 ) V
2 n(n + 1)/2 ∈ O(n2 ) V
3 n(n + 1)/2 ∈ Θ(n3 ) F
4 n(n + 1)/2 ∈ Ω(n3 ) F
5 n(n + 1)/2 ∈ Ω(n) V

Dr. Eduardo R ODRÍGUEZ T. (C INVESTAV) Conceptos Fundamentales del Análisis II 17 de enero de 2018 9 / 20
Conceptos fundamentales del análisis de algoritmos II Orden de crecimiento asintótico

Orden de crecimiento asintótico, propiedades

f (n) ∈ O(f (n))

f (n) ∈ O(g(n)) si y sólo si g(n) ∈ Ω(f (n))

Si f (n) ∈ O(g(n)) y g(n) ∈ O(h(n)), entonces f (n) ∈ O(h(n))

Si f1 (n) ∈ O(g1 (n)) y f2 (n) ∈ O(g2 (n)), entonces


f1 (n) + f2 (n) ∈ O(max{g1 (n), g2 (n)})

Dr. Eduardo R ODRÍGUEZ T. (C INVESTAV) Conceptos Fundamentales del Análisis II 17 de enero de 2018 10 / 20
Conceptos fundamentales del análisis de algoritmos II Comparación de ordenes de crecimiento con límites

1 Conceptos fundamentales del análisis de algoritmos II


Orden de crecimiento asintótico
Comparación de ordenes de crecimiento con límites
Ordenes de crecimiento de funciones importantes
Clases básicas de eficiencia asintótica
Tarea 3

Dr. Eduardo R ODRÍGUEZ T. (C INVESTAV) Conceptos Fundamentales del Análisis II 17 de enero de 2018 11 / 20
Conceptos fundamentales del análisis de algoritmos II Comparación de ordenes de crecimiento con límites

Comparación de ordenes de crecimiento con límites


0

 orden de crecimiento de T (n) < orden de crecimiento de g(n)
T (n)
lı́m = c > 0 orden de crecimiento de T (n) = orden de crecimiento de g(n)
n→∞ g(n) 
∞

orden de crecimiento de T (n) > orden de crecimiento de g(n)

Ejemplo:

Comparar 12 n(n − 1) y n2

1
− 1) n2 − n
 
2
n(n 1 1 1 1
lı́m = lı́m = lı́m 1 − =
n→∞ n2 2 n→∞ n2 2 n→∞ n 2

Como el límite es igual a una constante positiva, entonces las funciones tienen
igual orden de crecimiento, i.e., 21 n(n − 1) ∈ Θ(n2 )

Dr. Eduardo R ODRÍGUEZ T. (C INVESTAV) Conceptos Fundamentales del Análisis II 17 de enero de 2018 12 / 20
Conceptos fundamentales del análisis de algoritmos II Comparación de ordenes de crecimiento con límites

Comparación de ordenes de crecimiento con límites

Regla de l’Hôpital
Si lı́m f (n) = lı́m g(n) = ∞ y las derivadas f 0 , g 0 existen, entonces:
n→∞ n→∞

f (n) f 0 (n)
lı́m = lı́m 0
n→∞ g(n) n→∞ g (n)

Ejemplo:

Comparar log2 n y n

log2 n (log2 n)0 (log2 e) n1 1


lı́m √ = lı́m √ 0 = lı́m 1 = 2 log2 e lı́m √ = 0
n→∞ n n→∞ ( n) n→∞ √
2 n
n→∞ n

Como el límite es igual a cero, entonces la función


√ log2 n tienen un

orden de crecimiento más pequeño que el de n, i.e., log2 n ∈ o( n)

o(g(n)): clase de funciones f (n) que crecen estrictamente menos rápido que g(n)

Dr. Eduardo R ODRÍGUEZ T. (C INVESTAV) Conceptos Fundamentales del Análisis II 17 de enero de 2018 13 / 20
Conceptos fundamentales del análisis de algoritmos II Comparación de ordenes de crecimiento con límites

Comparación de ordenes de crecimiento con límites

Fórmula de Stirling
Para valores grandes de n:
√  n n
n! ≈ 2πn
e
Ejemplo:
Comparar n! y 2n
√ n n √ √

n! 2πn e nn  n n
lı́m = lı́m = lı́m 2πn n n = lı́m 2πn =∞
n→∞ 2n n→∞ 2n n→∞ 2 e n→∞ 2e

Por lo tanto, aunque 2n crece muy rápido, n! crece incluso más rápido, i.e.,
n! ∈ Ω(2n )

Dr. Eduardo R ODRÍGUEZ T. (C INVESTAV) Conceptos Fundamentales del Análisis II 17 de enero de 2018 14 / 20
Conceptos fundamentales del análisis de algoritmos II Ordenes de crecimiento de funciones importantes

1 Conceptos fundamentales del análisis de algoritmos II


Orden de crecimiento asintótico
Comparación de ordenes de crecimiento con límites
Ordenes de crecimiento de funciones importantes
Clases básicas de eficiencia asintótica
Tarea 3

Dr. Eduardo R ODRÍGUEZ T. (C INVESTAV) Conceptos Fundamentales del Análisis II 17 de enero de 2018 15 / 20
Conceptos fundamentales del análisis de algoritmos II Ordenes de crecimiento de funciones importantes

Ordenes de crecimiento de funciones importantes

Todas las funciones logarítmicas loga n pertenecen a la misma


clase Θ(log n) sin importar la base del logaritmo a > 1

Todos los polinomios del mismo grado k pertenecen a la misma


clase ak nk + ak−1 nk−1 + · · · + a0 ∈ Θ(nk )

Las funciones exponenciales an tienen diferentes ordenes de


crecimiento para diferentes valores de a

orden log n < orden nα (α > 0) < orden an < orden n! < orden nn

Dr. Eduardo R ODRÍGUEZ T. (C INVESTAV) Conceptos Fundamentales del Análisis II 17 de enero de 2018 16 / 20
Conceptos fundamentales del análisis de algoritmos II Clases básicas de eficiencia asintótica

1 Conceptos fundamentales del análisis de algoritmos II


Orden de crecimiento asintótico
Comparación de ordenes de crecimiento con límites
Ordenes de crecimiento de funciones importantes
Clases básicas de eficiencia asintótica
Tarea 3

Dr. Eduardo R ODRÍGUEZ T. (C INVESTAV) Conceptos Fundamentales del Análisis II 17 de enero de 2018 17 / 20
Conceptos fundamentales del análisis de algoritmos II Clases básicas de eficiencia asintótica

Clases básicas de eficiencia asintótica

Clase Nombre
1 constante
log n logarítmico
n lineal
n log n n-log-n o linearítmico
n2 cuadrático
n3 cúbico
2n exponencial
n! factorial

Dr. Eduardo R ODRÍGUEZ T. (C INVESTAV) Conceptos Fundamentales del Análisis II 17 de enero de 2018 18 / 20
Conceptos fundamentales del análisis de algoritmos II Tarea 3

1 Conceptos fundamentales del análisis de algoritmos II


Orden de crecimiento asintótico
Comparación de ordenes de crecimiento con límites
Ordenes de crecimiento de funciones importantes
Clases básicas de eficiencia asintótica
Tarea 3

Dr. Eduardo R ODRÍGUEZ T. (C INVESTAV) Conceptos Fundamentales del Análisis II 17 de enero de 2018 19 / 20
Conceptos fundamentales del análisis de algoritmos II Tarea 3

Tarea 3

Pruebe, usando límites, que las siguientes funciones están


listadas ascendentemente con respecto a sus ordenes de
crecimiento correspondientes:

log n, n, n log n, n2 , n3 , 2n , n!

Fecha de entrega: 24 de enero antes de las 8 AM

Dr. Eduardo R ODRÍGUEZ T. (C INVESTAV) Conceptos Fundamentales del Análisis II 17 de enero de 2018 20 / 20

También podría gustarte