Академический Документы
Профессиональный Документы
Культура Документы
Recursividad
V1.1
Agenda
Introduccin Ejemplos Factorial Invertir un Nmero Resolver Laberinto Cundo utilizar Recursividad Algoritmos de Backtracking Las Ocho Reinas Sudoku Resumen
Introduccin
Poderosa herramienta de programacin Alternativa a algoritmos iterativos Soluciones elegantes a problemas difciles de
resolver de otro modo Un mtodo es recursivo si contiene invocaciones a s mismo Una llamada a un mtodo recursivo puede generar una o ms invocaciones al mismo mtodo, que a su ve genera otras,
Introduccin
Condiciones que debe cumplir un mtodo
recursivo: Asegurar que existe una condicin de salida, en la que no se producen llamadas recursivas (caso base) Asegurar que se cubren todos los posibles casos entre el base y los no base Cada llamada, en el caso no base, conduce a problemas cada vez ms pequeos que terminarn en el caso base
Agenda
Introduccin Ejemplos Factorial Invertir un Nmero Resolver Laberinto Cundo utilizar Recursividad Algoritmos de Backtracking Las Ocho Reinas Sudoku Resumen
Ejemplo: Factorial
Definicin del factorial (definicin
Soluciones
return n * factorial(n 1)
Ejemplo: Factorial
Agenda
Introduccin Ejemplos Factorial Invertir un Nmero Resolver Laberinto Cundo utilizar Recursividad Algoritmos de Backtracking Las Ocho Reinas Sudoku Resumen
Agenda
Introduccin Ejemplos Factorial Invertir un Nmero Resolver Laberinto Cundo utilizar Recursividad Algoritmos de Backtracking Las Ocho Reinas Sudoku Resumen
Agenda
Introduccin Ejemplos Factorial Invertir un Nmero Resolver Laberinto Cundo utilizar Recursividad Algoritmos de Backtracking Las Ocho Reinas Sudoku Resumen
eficientes que las iterativas (coste mayor en tiempo y memoria). Consejos: Los algoritmos que por naturaleza son recursivos y donde la solucin iterativa es complicada y debe manejarse explcitamente una pila para emular las llamadas recursivas, deben resolverse por mtodos recursivos Cuando haya una solucin obvia al problema por iteracin, debe evitarse la recursividad
Agenda
Introduccin Ejemplos Factorial Invertir un Nmero Resolver Laberinto Cundo utilizar Recursividad Algoritmos de Backtracking Las Ocho Reinas Sudoku Resumen
Algoritmos de Backtracking
El backtracking o vuelta atrs es una tcnica
algortmica de resolucin general de problemas mediante una bsqueda sistemtica de soluciones. Se descompone la tarea a realizar en tareas parciales y se prueba sistemticamente cada una de estas, que a su vez se descompondrn en subtareas Cuando al elegir una tarea se comprueba que no lleva a una solucin, se debe volver atrs, y probar con otra
Agenda
Introduccin Ejemplos Factorial Invertir un Nmero Resolver Laberinto Cundo utilizar Recursividad Algoritmos de Backtracking Las Ocho Reinas Sudoku Resumen
Agenda
Introduccin Ejemplos Factorial Invertir un Nmero Resolver Laberinto Cundo utilizar Recursividad Algoritmos de Backtracking Las Ocho Reinas Sudoku Resumen
10
11
Agenda
Introduccin Ejemplos Factorial Invertir un Nmero Resolver Laberinto Cundo utilizar Recursividad Algoritmos de Backtracking Las Ocho Reinas Sudoku Resumen
Resumen
Introduccin Mtodo que se Cundo utilizar
menos eficiente Recomendado si solucin iterativa difcil y problema de naturaleza recursiva Algoritmos de Backtracking Las Ocho Reinas Sudoku
Normalmente
12