Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Recursión
1. Outline
Recursi´n
o
Recursi´n
o
Roberto Carlos Abreu D´
ıaz
January 15, 2010
Roberto Carlos Abreu D´
ıaz Recursi´n
o
2. Outline
Recursi´n
o
1 Recursi´n
o
N´meros triangulares
u
Caracter´
ısticas de los M´todos Recursivos
e
Eficiencia de la recursi´n
o
Roberto Carlos Abreu D´
ıaz Recursi´n
o
3. N´meros triangulares
u
Outline
Caracter´
ısticas de los M´todos Recursivos
e
Recursi´n
o
Eficiencia de la recursi´n
o
Recursi´n
o
Definici´n
o
Es una t´cnica de programaci´n en la cual una funci´n se llama a
e o o
si misma.
Ejemplo
¿Te acuerdas del factorial? El factorial de el entero no negativo n
es el producto de todos los enteros desde ´l hasta 1.
e
k=n
Formalmente: n! = k
k=1
De este producto es f´cil ver que el factorial de n es tambi´n
a e
n! = n ∗ (n − 1)!
Roberto Carlos Abreu D´
ıaz Recursi´n
o
4. N´meros triangulares
u
Outline
Caracter´
ısticas de los M´todos Recursivos
e
Recursi´n
o
Eficiencia de la recursi´n
o
Recursi´n
o
Roberto Carlos Abreu D´
ıaz Recursi´n
o
5. N´meros triangulares
u
Outline
Caracter´
ısticas de los M´todos Recursivos
e
Recursi´n
o
Eficiencia de la recursi´n
o
N´meros triangulares
u
D´ıcese que los Pitag´ricos sent´ una conexi´n m´
o ıan o ıstica con la
serie de n´meros 1, 3, 6, 10, 15, 21, ...
u
Roberto Carlos Abreu D´
ıaz Recursi´n
o
6. N´meros triangulares
u
Outline
Caracter´
ısticas de los M´todos Recursivos
e
Recursi´n
o
Eficiencia de la recursi´n
o
N´meros triangulares
u
D´ıcese que los Pitag´ricos sent´ una conexi´n m´
o ıan o ıstica con la
serie de n´meros 1, 3, 6, 10, 15, 21, ...
u
¿Puedes encontrar el pr´ximo miembro de esta serie?
o
Roberto Carlos Abreu D´
ıaz Recursi´n
o
7. N´meros triangulares
u
Outline
Caracter´
ısticas de los M´todos Recursivos
e
Recursi´n
o
Eficiencia de la recursi´n
o
N´meros triangulares
u
D´ıcese que los Pitag´ricos sent´ una conexi´n m´
o ıan o ıstica con la
serie de n´meros 1, 3, 6, 10, 15, 21, ...
u
¿Puedes encontrar el pr´ximo miembro de esta serie?
o
El en´simo termino se consigue a˜adiendo n al t´rmino previo
e n e
Roberto Carlos Abreu D´
ıaz Recursi´n
o
8. N´meros triangulares
u
Outline
Caracter´
ısticas de los M´todos Recursivos
e
Recursi´n
o
Eficiencia de la recursi´n
o
N´meros triangulares
u
D´ıcese que los Pitag´ricos sent´ una conexi´n m´
o ıan o ıstica con la
serie de n´meros 1, 3, 6, 10, 15, 21, ...
u
¿Puedes encontrar el pr´ximo miembro de esta serie?
o
El en´simo termino se consigue a˜adiendo n al t´rmino previo
e n e
Los n´meros en esta serie se llaman triangulares porque
u
pueden ser visualizados de forma triangular
Roberto Carlos Abreu D´
ıaz Recursi´n
o
9. N´meros triangulares
u
Outline
Caracter´
ısticas de los M´todos Recursivos
e
Recursi´n
o
Eficiencia de la recursi´n
o
Encontrando el en´simo t´rmino recursivamente
e e
C´digo
o
public int t ri an gu lo ( int n)
{
i f ( n == 1 )
{
return 1;
}
return n + t r i a n g u l o (n − 1 ) ;
}
Roberto Carlos Abreu D´
ıaz Recursi´n
o
10. N´meros triangulares
u
Outline
Caracter´
ısticas de los M´todos Recursivos
e
Recursi´n
o
Eficiencia de la recursi´n
o
¿Qu´ est´ pasando realmente?
e a
Si introducimos 4,
Roberto Carlos Abreu D´
ıaz Recursi´n
o
11. N´meros triangulares
u
Outline
Caracter´
ısticas de los M´todos Recursivos
e
Recursi´n
o
Eficiencia de la recursi´n
o
¿Qu´ est´ pasando realmente?
e a
Si introducimos 4,
4 > 1 por lo tanto ejecuta 4 + triangulo(3)
Roberto Carlos Abreu D´
ıaz Recursi´n
o
12. N´meros triangulares
u
Outline
Caracter´
ısticas de los M´todos Recursivos
e
Recursi´n
o
Eficiencia de la recursi´n
o
¿Qu´ est´ pasando realmente?
e a
Si introducimos 4,
4 > 1 por lo tanto ejecuta 4 + triangulo(3)
Entra la funci´n con argumento 3
o
Roberto Carlos Abreu D´
ıaz Recursi´n
o
13. N´meros triangulares
u
Outline
Caracter´
ısticas de los M´todos Recursivos
e
Recursi´n
o
Eficiencia de la recursi´n
o
¿Qu´ est´ pasando realmente?
e a
Si introducimos 4,
4 > 1 por lo tanto ejecuta 4 + triangulo(3)
Entra la funci´n con argumento 3
o
3 > 1 por lo tanto 3 + triangulo(2)
Roberto Carlos Abreu D´
ıaz Recursi´n
o
14. N´meros triangulares
u
Outline
Caracter´
ısticas de los M´todos Recursivos
e
Recursi´n
o
Eficiencia de la recursi´n
o
¿Qu´ est´ pasando realmente?
e a
Si introducimos 4,
4 > 1 por lo tanto ejecuta 4 + triangulo(3)
Entra la funci´n con argumento 3
o
3 > 1 por lo tanto 3 + triangulo(2)
Entra la funci´n con argumento 2
o
Roberto Carlos Abreu D´
ıaz Recursi´n
o
15. N´meros triangulares
u
Outline
Caracter´
ısticas de los M´todos Recursivos
e
Recursi´n
o
Eficiencia de la recursi´n
o
¿Qu´ est´ pasando realmente?
e a
Si introducimos 4,
4 > 1 por lo tanto ejecuta 4 + triangulo(3)
Entra la funci´n con argumento 3
o
3 > 1 por lo tanto 3 + triangulo(2)
Entra la funci´n con argumento 2
o
2 > 1 por lo tanto 2 + triangulo(1)
Roberto Carlos Abreu D´
ıaz Recursi´n
o
16. N´meros triangulares
u
Outline
Caracter´
ısticas de los M´todos Recursivos
e
Recursi´n
o
Eficiencia de la recursi´n
o
¿Qu´ est´ pasando realmente?
e a
Si introducimos 4,
4 > 1 por lo tanto ejecuta 4 + triangulo(3)
Entra la funci´n con argumento 3
o
3 > 1 por lo tanto 3 + triangulo(2)
Entra la funci´n con argumento 2
o
2 > 1 por lo tanto 2 + triangulo(1)
Entra la funci´n con argumento 1
o
Roberto Carlos Abreu D´
ıaz Recursi´n
o
17. N´meros triangulares
u
Outline
Caracter´
ısticas de los M´todos Recursivos
e
Recursi´n
o
Eficiencia de la recursi´n
o
¿Qu´ est´ pasando realmente?
e a
Si introducimos 4,
4 > 1 por lo tanto ejecuta 4 + triangulo(3)
Entra la funci´n con argumento 3
o
3 > 1 por lo tanto 3 + triangulo(2)
Entra la funci´n con argumento 2
o
2 > 1 por lo tanto 2 + triangulo(1)
Entra la funci´n con argumento 1
o
1 = 1 por lo tanto retorna 1
Roberto Carlos Abreu D´
ıaz Recursi´n
o
18. N´meros triangulares
u
Outline
Caracter´
ısticas de los M´todos Recursivos
e
Recursi´n
o
Eficiencia de la recursi´n
o
¿Qu´ est´ pasando realmente?
e a
Si introducimos 4,
4 > 1 por lo tanto ejecuta 4 + triangulo(3)
Entra la funci´n con argumento 3
o
3 > 1 por lo tanto 3 + triangulo(2)
Entra la funci´n con argumento 2
o
2 > 1 por lo tanto 2 + triangulo(1)
Entra la funci´n con argumento 1
o
1 = 1 por lo tanto retorna 1
Vuelve a la funci´n con argumento 2
o
Roberto Carlos Abreu D´
ıaz Recursi´n
o
19. N´meros triangulares
u
Outline
Caracter´
ısticas de los M´todos Recursivos
e
Recursi´n
o
Eficiencia de la recursi´n
o
¿Qu´ est´ pasando realmente?
e a
Si introducimos 4,
4 > 1 por lo tanto ejecuta 4 + triangulo(3)
Entra la funci´n con argumento 3
o
3 > 1 por lo tanto 3 + triangulo(2)
Entra la funci´n con argumento 2
o
2 > 1 por lo tanto 2 + triangulo(1)
Entra la funci´n con argumento 1
o
1 = 1 por lo tanto retorna 1
Vuelve a la funci´n con argumento 2
o
triangulo(1) = 1, retorna 2 + 1 = 3
Roberto Carlos Abreu D´
ıaz Recursi´n
o
20. N´meros triangulares
u
Outline
Caracter´
ısticas de los M´todos Recursivos
e
Recursi´n
o
Eficiencia de la recursi´n
o
¿Qu´ est´ pasando realmente?
e a
Si introducimos 4,
4 > 1 por lo tanto ejecuta 4 + triangulo(3)
Entra la funci´n con argumento 3
o
3 > 1 por lo tanto 3 + triangulo(2)
Entra la funci´n con argumento 2
o
2 > 1 por lo tanto 2 + triangulo(1)
Entra la funci´n con argumento 1
o
1 = 1 por lo tanto retorna 1
Vuelve a la funci´n con argumento 2
o
triangulo(1) = 1, retorna 2 + 1 = 3
Vuelve a la funci´n con argumento 3
o
Roberto Carlos Abreu D´
ıaz Recursi´n
o
21. N´meros triangulares
u
Outline
Caracter´
ısticas de los M´todos Recursivos
e
Recursi´n
o
Eficiencia de la recursi´n
o
¿Qu´ est´ pasando realmente?
e a
Si introducimos 4,
4 > 1 por lo tanto ejecuta 4 + triangulo(3)
Entra la funci´n con argumento 3
o
3 > 1 por lo tanto 3 + triangulo(2)
Entra la funci´n con argumento 2
o
2 > 1 por lo tanto 2 + triangulo(1)
Entra la funci´n con argumento 1
o
1 = 1 por lo tanto retorna 1
Vuelve a la funci´n con argumento 2
o
triangulo(1) = 1, retorna 2 + 1 = 3
Vuelve a la funci´n con argumento 3
o
triangulo(2) = 3, retorna 3 + 3 = 6
Roberto Carlos Abreu D´
ıaz Recursi´n
o
22. N´meros triangulares
u
Outline
Caracter´
ısticas de los M´todos Recursivos
e
Recursi´n
o
Eficiencia de la recursi´n
o
¿Qu´ est´ pasando realmente?
e a
Si introducimos 4,
4 > 1 por lo tanto ejecuta 4 + triangulo(3)
Entra la funci´n con argumento 3
o
3 > 1 por lo tanto 3 + triangulo(2)
Entra la funci´n con argumento 2
o
2 > 1 por lo tanto 2 + triangulo(1)
Entra la funci´n con argumento 1
o
1 = 1 por lo tanto retorna 1
Vuelve a la funci´n con argumento 2
o
triangulo(1) = 1, retorna 2 + 1 = 3
Vuelve a la funci´n con argumento 3
o
triangulo(2) = 3, retorna 3 + 3 = 6
Vuelve a la funci´n original, con argumento 4
o
Roberto Carlos Abreu D´
ıaz Recursi´n
o
23. N´meros triangulares
u
Outline
Caracter´
ısticas de los M´todos Recursivos
e
Recursi´n
o
Eficiencia de la recursi´n
o
¿Qu´ est´ pasando realmente?
e a
Si introducimos 4,
4 > 1 por lo tanto ejecuta 4 + triangulo(3)
Entra la funci´n con argumento 3
o
3 > 1 por lo tanto 3 + triangulo(2)
Entra la funci´n con argumento 2
o
2 > 1 por lo tanto 2 + triangulo(1)
Entra la funci´n con argumento 1
o
1 = 1 por lo tanto retorna 1
Vuelve a la funci´n con argumento 2
o
triangulo(1) = 1, retorna 2 + 1 = 3
Vuelve a la funci´n con argumento 3
o
triangulo(2) = 3, retorna 3 + 3 = 6
Vuelve a la funci´n original, con argumento 4
o
triangulo(3) = 6, retorna 4 + 6 = 10
Roberto Carlos Abreu D´
ıaz Recursi´n
o
24. N´meros triangulares
u
Outline
Caracter´
ısticas de los M´todos Recursivos
e
Recursi´n
o
Eficiencia de la recursi´n
o
Caracter´
ısticas de los M´todos Recursivos
e
Nota
Aunque triangulo() sea tan corta, posee las caracter´
ısticas
comunes a todas las funciones recursivas:
Se llama a ella misma
Cuando se llama a ella misma, lo hace para resolver un
problema m´s peque˜o
a n
Contiene una versi´n del problema tan simple que puede
o
resolverla y retornar sin llamarse a ella misma
Roberto Carlos Abreu D´
ıaz Recursi´n
o
25. N´meros triangulares
u
Outline
Caracter´
ısticas de los M´todos Recursivos
e
Recursi´n
o
Eficiencia de la recursi´n
o
¿Es eficiente la recursi´n?
o
El control se transfiere desde donde la funci´n fue llamada al
o
inicio de esta
Los argumentos y la direcci´n donde la funci´n debe retornar
o o
se ponen en una pila
Con poca data quiz´ no haya problemas, pero una gran
a
cantidad de data puede causar un stack overflow
La recursi´n se usa com´nmente porque simplifica un
o u
problema conceptualmente, no porque es inherentemente m´s
a
eficiente.
Roberto Carlos Abreu D´
ıaz Recursi´n
o