Diferencia entre revisiones de «Recursión (ciencias de computación)»

Contenido eliminado Contenido añadido
Sin resumen de edición
m Revertidos los cambios de 88.23.214.194 (disc.) a la última edición de Drinibot
Línea 1:
Un '''algoritmo recursivo''' es un algoritmo que expresa la solución de un problema en términos de una llamada a sí mismo. La llamada a sí mismo se conoce como llamada recursiva.
 
Algunos ejemplos de [[recursión|recurrencia]]:
<source lang=text>FUNCIÓN Factorial(n)
*'''En un texto''':
SI (n<2) ENTONCES
Para saber qué es la recurrencia, primero hay que saber qué es la recurrencia.
Factorial = 1;
*'''En un acrónimo''':
SINO
¿Qué es '''GNU'''? → '''G'''NU '''N'''o es '''U'''nix
Factorial = n * Factorial(n-1);
¿Qué es '''PHP'''? → '''P'''HP: '''H'''ipertext '''P'''reprocessor
FSI
*'''En [[matemáticas]]''':
FFUNCIÓN</source>
f(x) = x * f(x-1)
*'''En un algoritmo''':
<source lang=text> FUNCIÓN Factorial(n)
INICIO
SI (n<2) ENTONCES
Factorial = 1;
SINO
Factorial = n * Factorial(n-1);
FIN-SI
FSIFIN
 
Generalmente, si la primera llamada al subprograma se plantea sobre un problema de tamaño u orden N, cada nueva ejecución recurrente del mismo se planteará sobre problemas, de igual naturaleza que el original, pero de un tamaño menor que N. De esta forma, al ir reduciendo progresivamente la complejidad del problema a resolver, llegará un momento en que su resolución sea más o menos trivial (o, al menos, suficientemente manejable como para resolverlo de forma no recursiva). En esa situación diremos que estamos ante un '''caso base''' de la recursividad.