Documentos de Académico
Documentos de Profesional
Documentos de Cultura
www.unaj.edu.ar
Complejidad Temporal, Estructuras de Datos y Algoritmos
Temario
•Repaso del concepto de recursion.
•
•Introducción del concepto de función de recurrencia.
•
•Cálculo del T(n) para algoritmos recursivos.
•
www.unaj.edu.ar
Complejidad Temporal, Estructuras de Datos y Algoritmos
Repaso: Recursion
www.unaj.edu.ar
Complejidad Temporal, Estructuras de Datos y Algoritmos
Conceptos
• La recursión es una técnica de programación muy
poderosa, en la cual una función realiza
llamadas a misma en pos de resolver un
problema.
•
• Razones para su uso:
– Problemas “casi” irresolubles con las estructuras iterativas.
– Soluciones elegantes.
– Soluciones más simples.
•
www.unaj.edu.ar
Complejidad Temporal, Estructuras de Datos y Algoritmos
Identificación de casos
• En las funciones recursivas bien definidas se
puede identificar dos elementos:
– Caso Base: Se da cuando el calculo es tan
simple que se puede resolver directamente
sin necesidad de hacer una llamada
recursiva.
– Caso Recursivo: aquí la función realiza
algunas operaciones con las que se reduce
la complejidad del problema y luego realiza
un llamado a si misma.
www.unaj.edu.ar
Complejidad Temporal, Estructuras de Datos y Algoritmos
Ejemplo de Recursión
#Calcula el Factorial. Caso Base: Cuando el
factorial (n) parámetro es 1 o menor, la
if (n < 2) función retorna 1 y termina.
return 1
else
return n * factorial( n
-1)
Función de Recurrencia.
www.unaj.edu.ar
Complejidad Temporal, Estructuras de Datos y Algoritmos
#Calcula el Factorial.
factorial (n)
if (n < 2)
return 1
else
return n * factorial( n
-1)
www.unaj.edu.ar
Complejidad Temporal, Estructuras de Datos y Algoritmos
cte1 n=
1
T(n) =
cte2 + T( n - 1 ) n
>1 Para el caso recurrente: La
funcion de recurrencia insume
un tiempo constate mas el
tiempo de invocar a la funcion
con el parametro disminuido en
uno.
www.unaj.edu.ar
Complejidad Temporal, Estructuras de Datos y Algoritmos
Ejemplo :
Encontrar el máximo elemento en un arreglo
de enteros tomando n posiciones a partir de la
posición i .
n
a
i i + n -1
www.unaj.edu.ar
Complejidad Temporal, Estructuras de Datos y Algoritmos
www.unaj.edu.ar
Complejidad Temporal, Estructuras de Datos y Algoritmos
Máximo en un arreglo
cte1 n=1
T(n) =
2T(n/2) + cte2 n >1
www.unaj.edu.ar
Complejidad Temporal, Estructuras de Datos y Algoritmos
www.unaj.edu.ar
Complejidad Temporal, Estructuras de Datos y Algoritmos
1 n=1
T(n) =
8T(n/2) + n³ n >1
www.unaj.edu.ar
Complejidad Temporal, Estructuras de Datos y Algoritmos
www.unaj.edu.ar
Complejidad Temporal, Estructuras de Datos y Algoritmos
T (n) 88T n 3 , n 4
2 2
n n3
T (n) 88T 3 n 3 , n 4
4 2
www.unaj.edu.ar
Complejidad Temporal, Estructuras de Datos y Algoritmos
4 2
2 n
T ( n) 8 T 2 n 3 n 3 , n 4
2
2 n
T ( n) 8 T 2 2n 3 , n 2 2
2
i n
T (n) 8 T i in 3 , n 2i
2
www.unaj.edu.ar
Complejidad Temporal, Estructuras de Datos y Algoritmos
n
T (n) 8 T i in , n 2
i 3 i
2
n
i
1
2
n2 i
i Log 2 (n)
www.unaj.edu.ar
Complejidad Temporal, Estructuras de Datos y Algoritmos
n
T ( n) 8 T Log 2 ( n ) Log 2 (n)n 3
Log 2 ( n )
2
Log 2 ( 8 ) n
T ( n) n T Log 2 (n)n 3
n
T (n) n T 1 Log 2 (n)n
3 3
www.unaj.edu.ar