Unidad V Recursin Objetivos del Aprendizaje Explicar el
Unidad V Recursión
Objetivos del Aprendizaje • Explicar el concepto de recursión. • Discutir las diferentes condiciones que deben ser satisfechas para que las funciones recursivas trabajen correctamente. • Describir cómo una función recursiva trabaja cuando se ejecuta. • Definir el rol de la pila en la ejecución de las funciones recursivas.
Introducción • La palabra recursión tiene raíz latina: 're' que significa ‘regresar’ y el sufijo latin 'currere', significa ‘correr’. • La palabra recursión literalmente significa 'correr hacia atrás', o 'que suceda otra vez, especialmente en un intervalo específico‘. • En el contexto de la programación de computadoras, la palabra 'recursión' se refiere a una función que es capaz de llamarse así misma. • Ejemplo: int my. Recursive(int x){ my. Recursive(x-1); }
Definición de Recursión • Una definición de recursion es: ‘Una técnica algorítmica donde una función para acometer una tarea, se llama a sí misma con valores modificados de sus argumentos'. • Recursión es realmente una técnica algorítmica que se emplea para resolver ciertos problemas. • En el contexto de un programa en C, la recursión implica una función en C que puede ser llamada desde el cuerpo de la misma función. • Cuando una función se llama a sí misma, lo hace con ‘valores modificados de sus argumentos’ usualmente, a través de los parámetros que son pasados en la llamada.
Escribir Funciones Recursivas Calcular el Factorial de un Entero Ejemplo de Factorial: Factorial de 5 = 5 x 4 x 3 x 2 x 1= 120 Definición del Factorial: 0! = 1 n! = n x (n-1) x (n-2) x … x 1 para n > 0 Se escribe el factorial de n como n! y se lee n-factorial.
Calcular el Factorial de un Entero Recursivamente • El factorial se puede también definir usando inducción matemática, es decir, recursivamente, como sigue: n!= n x (n-1)! para n > 0 0!= 1 para n = 0 • La definición formal recursiva del factorial de n es: if (n==0) return 1; else return factorial(n-1) * n;
Recursión vs Iteración • Todas las soluciones recursivas pueden normalmente ser resueltas usando iteraciones, mientras lo contrario no es verdadero. • Un código recursivo es compacto, fácil de escribir y fácil de entender. • El código, sin embargo, no ahorra tiempo ni espacio. • Para problemas sencillos como el factorial, Fibonacci, etc. , las soluciones iterativas son más económicas en términos de espacio y tiempo.
Resumen • Explicar el concepto de recursión. • Discutir las diferentes condiciones que deben ser satisfechas para que las funciones recursivas trabajen correctamente. • Describir cómo una función recursiva trabaja cuando se ejecuta. • Definir el rol de la pila en la ejecución de las funciones recursivas.
- Slides: 8