Docsity
Docsity

Prepara tus exámenes
Prepara tus exámenes

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity


Consigue puntos base para descargar
Consigue puntos base para descargar

Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium


Orientación Universidad
Orientación Universidad


transparencias tema 7, Apuntes de Informática

Asignatura: programacion, Profesor: angel olaya, Carrera: Ingeniería en Informática, Universidad: UC3M

Tipo: Apuntes

Antes del 2010

Subido el 21/10/2007

rayista
rayista 🇪🇸

4

(8)

9 documentos

1 / 12

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
1
Recursividad
TEMA 7
Manuel Pereira González
V1.1
Agenda
Introducción
Ejemplos
Factorial
Invertir un Número
Resolver Laberinto
Cuándo utilizar Recursividad
Algoritmos de Backtracking
Las Ocho Reinas
Sudoku
Resumen
pf3
pf4
pf5
pf8
pf9
pfa

Vista previa parcial del texto

¡Descarga transparencias tema 7 y más Apuntes en PDF de Informática solo en Docsity!

Recursividad

TEMA 7

Manuel Pereira González V1.

Agenda

ƒ Introducción ƒ Ejemplos ƒ Factorial ƒ Invertir un Número ƒ Resolver Laberinto ƒ Cuándo utilizar Recursividad ƒ Algoritmos de Backtracking ƒ Las Ocho Reinas ƒ Sudoku ƒ Resumen

Introducción

ƒ Poderosa herramienta de programación

ƒ Alternativa a algoritmos iterativos

ƒ Soluciones elegantes a problemas difíciles de

resolver de otro modo

ƒ Un método es recursivo si contiene

invocaciones a sí mismo

ƒ Una llamada a un método recursivo puede

generar una o más invocaciones al mismo

método, que a su ve genera otras, …

Introducción

ƒ Condiciones que debe cumplir un método

recursivo:

ƒ Asegurar que existe una condición 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 más

pequeños que terminarán en el caso base

Ejemplo: Factorial

Agenda

ƒ Introducción ƒ Ejemplos ƒ Factorial ƒ Invertir un Número ƒ Resolver Laberinto ƒ Cuándo utilizar Recursividad ƒ Algoritmos de Backtracking ƒ Las Ocho Reinas ƒ Sudoku ƒ Resumen

Ejemplo: Invertir un Número

Agenda

ƒ Introducción ƒ Ejemplos ƒ Factorial ƒ Invertir un Número ƒ Resolver Laberinto ƒ Cuándo utilizar Recursividad ƒ Algoritmos de Backtracking ƒ Las Ocho Reinas ƒ Sudoku ƒ Resumen

Agenda

ƒ Introducción ƒ Ejemplos ƒ Factorial ƒ Invertir un Número ƒ Resolver Laberinto ƒ Cuándo utilizar Recursividad ƒ Algoritmos de Backtracking ƒ Las Ocho Reinas ƒ Sudoku ƒ Resumen

Cuándo utilizar recursividad

ƒ En general, las soluciones recursivas son menos eficientes que las iterativas (coste mayor en tiempo y memoria). ƒ Consejos: ƒ Los algoritmos que por naturaleza son recursivos y donde la solución iterativa es complicada y debe manejarse explícitamente una pila para emular las llamadas recursivas, deben resolverse por métodos recursivos ƒ Cuando haya una solución obvia al problema por iteración, debe evitarse la recursividad

Agenda

ƒ Introducción ƒ Ejemplos ƒ Factorial ƒ Invertir un Número ƒ Resolver Laberinto ƒ Cuándo utilizar Recursividad ƒ Algoritmos de Backtracking ƒ Las Ocho Reinas ƒ Sudoku ƒ Resumen

Algoritmos de Backtracking

ƒ El backtracking o vuelta atrás es una técnica algorítmica de resolución general de problemas mediante una búsqueda sistemática de soluciones. ƒ Se descompone la tarea a realizar en tareas parciales y se prueba sistemáticamente cada una de estas, que a su vez se descompondrán en subtareas… ƒ Cuando al elegir una tarea se comprueba que no lleva a una solución, se debe volver atrás, y probar con otra

Algoritmos de Backtracking:

Ocho Reinas

Agenda

ƒ Introducción ƒ Ejemplos ƒ Factorial ƒ Invertir un Número ƒ Resolver Laberinto ƒ Cuándo utilizar Recursividad ƒ Algoritmos de Backtracking ƒ Las Ocho Reinas ƒ Sudoku ƒ Resumen

Algoritmos de Backtracking:

Sudoku

Algoritmos de Backtracking:

Sudoku