Ensayo sobre manejo del tiempo
Recursividad
Recursividad
T E M A 1
CONTENIDO DEL TEMA
1.- Introducción. 2.- Verificación de funciones y procedimientos recursivos 3.- Escritura de programas recursivos 4.- Ejemplos.5.- ¿Recursión o iteración? 6.- Depuración 7.- Ejemplos 8.- Asignación estática y dinámica de memoria.
Introducción
• Definición de Recursividad: Técnica de programación muy potente que puede serusada en lugar de la iteración. • Ambito de Aplicación:
– General – Problemas cuya solución se puede hallar solucionando el mismo problema pero con un caso de menor tamaño.
• Razones de uso:
–Problemas “casi” irresolubles con las estructuras iterativas. – Soluciones elegantes. – Soluciones más simples.
• Condición necesaria : ASIGNACIÓN DINÁMICA DE MEMORIA
Introducción
• ¿En quéconsiste la recursividad?
– En el cuerpo de sentencias del subalgoritmo se invoca al propio subalgoritmo para resolver “una versión más pequeña” del problema original. – Habrá un caso (o varios) tan simpleque pueda resolverse directamente sin necesidad de hacer otra llamada recursiva.
•
Aspecto de un subalgoritmo recursivo.
ALGORITMO Recursivo(...) INICIO ... Recursivo(...); ... FINIntroducción
• Ejemplo: Factorial de un natural.
1 Factorial(n)=
si n == 0
n*Factorial(n-1) si n > 0
Introducción
• Ejemplo: Factorial de un natural. ALGORITMO N Factorial(E n:N) VAR N factINICIO SI n == 0 ENTONCES fact = 1 SINO fact = n*Factorial(n-1) FINSI DEVOLVER fact FIN
Introducción
• ¿Cómo funciona la recursividad? 4!=4*3!
Introducción
• 3!=3*2!
Introducción
•2!=2*1!Introducción
• 1!=1*0!=1*1
Introducción
Verificación de funciones y procedimientos recursivos
Método de las tres preguntas
• La pregunta Caso-Base: ¿Existe una salida no recursiva o casobase del subalgoritmo? Además, ¿el subalgoritmo funciona correctamente para ella? • La pregunta Más-pequeño : ¿Cada llamada recursiva se refiere a un caso más pequeño del problema original? • La...
Regístrate para leer el documento completo.