Diferencia clave: en la programación, la recursión se puede explicar considerando una función recursiva. Una función recursiva es aquella que se llama a sí misma nuevamente para repetir el código. Por otro lado, la iteración se logra mediante una función iterativa que repite una sección del código.
En programación, la recursión y la iteración se utilizan para lograr repeticiones. Se refieren a un proceso que se repite numerosas veces. La recursión se basa en un enfoque en el que algo se refiere a sí mismo hasta que se cumple una condición. Se dice que un método es recursivo si puede llamarse a sí mismo directa o indirectamente como:
{
... nombre() ...
}
o
nombre vacío ()
{
... juego() ...
}
juego vacío () {
... nombre() ...
}
Para una recursión exitosa, se debe tener en cuenta que cada llamada realizada en el proceso de recursión debe simplificar el cálculo. La recursión se logra definiendo un caso base.
int factorial (int N)
{
si (N == 0) devuelve 1;
de lo contrario retorno (N * factorial (N-1));
}
En este ejemplo, la recursión se puede ver fácilmente en la declaración (N * factorial (N-1)), donde se llama nuevamente a la función factorial. La recursión es muy útil ya que ayuda a acortar el código. Sin embargo, la recursión es un poco lenta en el rendimiento.
función factorial (n)
{
bucle var, resultado;
resultado = 1;
para (loop = 1; loop <= n; loop ++)
{
resultado = resultado * bucle;
}
resultado de retorno
}
En este ejemplo, el bucle se logra utilizando números enteros de 1 a n, y la sentencia loop <= n se usa como un criterio para detener el bucle adicional. Por lo tanto, podemos concluir que se pueden lograr los mismos resultados utilizando una recursión y una iteración. Sin embargo, ambos se basan en enfoques que son un poco diferentes. Cualquier algoritmo recursivo también se puede escribir utilizando iteraciones (bucles).
Comparación entre recursión e iteración:
Recursion | Iteración | |
Definición | Recursión se refiere a una función recursiva en la que se llama a sí misma para repetir el código. | La iteración se logra mediante una función iterativa que repite una sección del código. |
Punto importante | Un caso base necesita ser determinado | Una condición de terminación necesita ser determinada |
Actuación | Comparativamente lento | Comparativamente rapido |
Uso de memoria | Comparativamente más | Comparativamente menos |
Código | Menor | Más |
Repetición infinita | La recursión infinita es capaz de estrellar el sistema | El bucle infinito consume ciclos de CPU repetidamente |
Estructura | Selección | Repetición |
Variables locales | No requerido | Necesario |