Documentos de Académico
Documentos de Profesional
Documentos de Cultura
“Sea T(n) y f(n) ambas funciones reales y no negativas, se dice que “T(n)
es de Orden f(n)” sí y sólo sí existen constantes c > 0 y n0 > 0 tales que
T(n) ≤ c·f(n), ∀n≥n0.”
2
Notación Asintótica
Podríamos pensar que el T(n) = 3n2+n+15 está compuesto por la suma ponderada de 3 funciones básicas:
Si bautizamos a estas funciones como f1(n), f2(n) y f3(n) y las definimos así:
f1(n) = n2
f2(n) = n
f3(n) = 1
….entonces, podemos reescribir a T(n) de esta forma:
3
Notación Asintótica
4
Notación Asintótica
5
Notación Asintótica
6
Notación Asintótica
7
Notación Asintótica
Pregunta:
¿Cuál de las 3 gráficas: f1(n), f2(n) ó
f3(n), “marca la tendencia” de la
T(n) = 3·n2 + n + 15 ·1
gráfica de T(n)?
Resp: La función f1(n) = n2
f1(n) = n2
f2(n) = n
f3(n) = 1
8
Notación Asintótica – Orden de un Algoritmo
f(n) = n2
9
Notación Asintótica – Orden de un Algoritmo
• Los principales órdenes que aparecen en la literatura son:
• O (1) orden constante: El tiempo que toma el algoritmo es constante, independiente del valor de n.
Disminución
• O (log n) orden logarítmico: Si n aumenta linealmente (de 1 en 1), el tiempo aumenta a un tiempo
orden en la Eficiencia
Aumento en el
IMPORTANTE:
Para el calculo del orden debes tener presente que se considera n → ∞ por lo que las constantes y los
términos menos significativos de T(n) no son tomados en cuenta.
10
Complejidad y Orden de un Algoritmo: Ejercicios
Ejercicios: Para cada uno de los siguientes problemas, construir un algoritmo que lo resuelva, y
determinar su complejidad y orden algorítmicos.
11
Complejidad y Orden de un Algoritmo: Ejercicios
veces
n
k
SI (A[i] == x) ENTONCES
RETORNAR i; k
i = i+1; 2k
}
RETORNAR -1; k
}
∴ T(n) ∈
O(n)pertenece al orden n”
Se escribe así, y se lee “T(n)
Recuerda que el orden de un algoritmo, deja fuera las constantes y las funciones
de n más pequeñas que posee el T(n), solo se queda con la función más grande.
12
Complejidad y Orden de un Algoritmo: Ejercicios
acum = acum*i 2k
i = i+1; 2k
n
T(n) = 4k + 5k⋅n
}
RETORNAR acum; k T(n) = 4k·1 + 5k·n
}
∴ T(n) ∈ O(n)
13
Complejidad y Orden de un Algoritmo: Ejercicios
T(n) = 4k + 5k⋅n
}
RETORNAR acum; k T(n) = 4k·1 + 5k·n
}
∴ T(n) ∈ O(n)
RECUERDA:
La diagonal de una matriz cuadrada siempre está en las
posiciones (0,0), (1,1), (2,2)…. Por eso se puede
generalizar el acceso de la forma (i,i).
14
Complejidad y Orden de un Algoritmo: Ejercicios
i = 0; k
Orden del algoritmo generado:
MIENTRAS (i < n) HACER k
{
j = 0; k T(n) = 5kn2 + 5kn + 3k
MIENTRAS (j < n) HACER k
T(n) = 5k·n2 + 5k·n + 3k·1
veces
{
veces
j = j+1; 2k
n
Co
Co n ∴ T(n) ∈ O(n2)
VERD
} nd
di
ció
i = i+1; 2k ici n
ón pa
l caso
p ra
} ara elc
as
e
RETORNAR C; k
el
o
para
FA
ca
LS
soF
} O
ición
AL
S O
Cond
Ejercicio 5: Sumar
NOTAdos1:matrices orden mxn.
La complejidad y el orden
Num sumaMatrices2(Num A[m][n], Num B[m][n])
{
(como se verá más adelante), T(m,n) = m*[n*5k + 5k] + 3k
Num i, j; poseen 2 parámetros de T(m,n) = 5kmn + 5km + 3k
entrada: que corresponden a
Num C[m][n];
las dimensiones de la matriz. NOTA 2:
i = 0; k
Orden del algoritmo
El orden m*ngenerado:
también
MIENTRAS (i < m) HACER k
{ se considera un orden
j = 0; k T(m,n) =cuadrático.
5kmn + 5km + 3k
MIENTRAS (j < n) HACER k
{ T(m,n) = 5k·mn + 5k·m + 3k·1
veces
veces
j = j+1; 2k
n
Co
Co n ∴ T(m,n) ∈ O(mn)
VERD
} nd
di
ció
i = i+1; 2k ici n
ón pa
l caso
p ra
} ara elc
as
e
RETORNAR C; k
el
o
para
FA
ca
LS
soF
} O
ición
AL
S O
Cond
instrucción 1;
instrucción 2; T1(n) ∈
instrucción 3;
instrucción 4; O(f1(n))
T(n) completo ∈ O(mayor entre f1(n) y f2(n))
instrucción a;
instrucción b;
instrucción c; T2(n) ∈
instrucción d; O(f2(n))
17
Orden de un Algoritmo: Propiedades
⇒ T1(n) · T2(n) ∈ O(f1(n) · f2(n)) (T1(n) es la cantidad de veces que se hace un ciclo y T2(n) nace de
18
Orden de un Algoritmo: Propiedades - Ejercicios
i = 1; O(1)
O(n)
MIENTRAS (i ≤ n) HACER
{
SI (A[i] == x) ENTONCES
RETORNAR i; O(1)
i = i+1;
}
RETORNAR -1; O(1)
}
Aplicando las reglas de la suma y del producto, el Orden de este algoritmo es:
∴ OALGb(n2)
Respuesta:
Se debe escoger la alternativa b, pues el Orden de tal algoritmo, es menor al orden de la alternativa a.
Complejidad y Orden de un Algoritmo: Ejercicios Propuestos
Ejercicio 8: PROPUESTO
Grafica las siguientes funciones en Excel, y luego ordénalas en forma creciente.
NOTA: Debe considerar una entrada lo suficientemente grande para realizar este ordenamiento.
Ejercicio 9: PROPUESTO
Indica 5 enunciados de problemas donde el mejor y el peor caso, tienen la misma complejidad.
21
APUNTES Nº3
ANÁLISIS DE ALGORITMOS: ORDEN DE UN ALGORITMO
Algoritmos y Estructuras de Datos