Diferencia Entre Recursividad E Iteración

Tabla de contenido:

Diferencia Entre Recursividad E Iteración
Diferencia Entre Recursividad E Iteración

Vídeo: Diferencia Entre Recursividad E Iteración

Vídeo: Diferencia Entre Recursividad E Iteración
Vídeo: Explicación: Iteración vs Recursividad en Java 2024, Noviembre
Anonim

Diferencia clave: recursividad frente a iteración

La recursividad y la iteración se pueden utilizar para resolver problemas de programación. El enfoque para resolver el problema mediante la recursividad o la iteración depende de la forma de resolver el problema. La diferencia clave entre la recursividad y la iteración es que la recursividad es un mecanismo para llamar a una función dentro de la misma función, mientras que la iteración es ejecutar un conjunto de instrucciones repetidamente hasta que la condición dada sea verdadera. La recursividad y la iteración son técnicas importantes para desarrollar algoritmos y crear aplicaciones de software.

CONTENIDO

1. Descripción general y diferencia clave

2. Qué es la recursividad

3. Qué es la iteración

4. Similitudes entre la recursión y la iteración

5. Comparación lado a lado: recursión frente a iteración en forma tabular

6. Resumen

¿Qué es la recursividad?

Cuando una función se llama a sí misma dentro de la función, se conoce como recursividad. Hay dos tipos de recursividad. Son recursividad finita y recursividad infinita. La recursividad finita tiene una condición de terminación. La recursividad infinita no tiene una condición de terminación.

La recursividad se puede explicar utilizando el programa para calcular factoriales.

¡norte! = n * (n-1) !, si n> 0

¡norte! = 1, si n = 0;

Consulte el código de abajo para calcular el factorial de 3 (3! = 3 * 2 * 1).

intmain () {

valor int = factorial (3);

printf ("El factorial es% d / n", valor);

return 0;

}

intfactorial (intn) {

si (n == 0) {

return 1;

}

else {

return n * factorial (n-1);

}

}

Al llamar a factorial (3), esa función llamará a factorial (2). Al llamar a factorial (2), esa función llamará a factorial (1). Entonces factorial (1) llamará factorial (0). factorial (0) devolverá 1. En el programa anterior, n == 0 condición en el "bloque si" es la condición base. Según el Asimismo, la función factorial se llama una y otra vez.

Las funciones recursivas están relacionadas con la pila. En C, el programa principal puede tener muchas funciones. Entonces, main () es la función que llama, y la función a la que llama el programa principal es la función llamada. Cuando se llama a la función, se le da el control a la función llamada. Una vez completada la ejecución de la función, el control vuelve a main. Luego continúa el programa principal. Entonces, crea un registro de activación o un marco de pila para continuar la ejecución.

Diferencia entre recursividad e iteración
Diferencia entre recursividad e iteración

Figura 01: Recurrencia

En el programa anterior, al llamar a factorial (3) desde main, crea un registro de activación en la pila de llamadas. Luego, se crea el marco de pila factorial (2) encima de la pila y así sucesivamente. El registro de activación guarda información sobre las variables locales, etc. Cada vez que se llama a la función, se crea un nuevo conjunto de variables locales en la parte superior de la pila. Estos marcos de pila pueden ralentizar la velocidad. Asimismo, en la recursividad, una función se llama a sí misma. La complejidad de tiempo para una función recursiva se calcula por el número de veces que se llama a la función. La complejidad del tiempo para una llamada de función es O (1). Para n número de llamadas recursivas, la complejidad de tiempo es O (n).

¿Qué es la iteración?

La iteración es un bloque de instrucciones que se repite una y otra vez hasta que la condición dada es verdadera. La iteración se puede lograr usando “bucle for”, “bucle do-while” o “bucle while”. La sintaxis "for loop" es la siguiente.

para (inicialización; condición; modificar) {

// declaraciones;

}

Diferencia clave entre recursividad e iteración
Diferencia clave entre recursividad e iteración

Figura 02: "para diagrama de flujo de bucle"

El paso de inicialización se ejecuta primero. Este paso consiste en declarar e inicializar las variables de control de bucle. Si la condición es verdadera, se ejecutan las declaraciones dentro de las llaves. Esas declaraciones se ejecutan hasta que la condición es verdadera. Si la condición es falsa, el control pasa a la siguiente instrucción después del "bucle for". Después de ejecutar las sentencias dentro del bucle, el control pasa a la sección de modificación. Es para actualizar la variable de control de bucle. Luego, la condición se verifica nuevamente. Si la condición es verdadera, se ejecutarán las declaraciones dentro de las llaves. De esta manera, el "bucle for" se repite.

En "while loop", las declaraciones dentro del ciclo se ejecutan hasta que la condición es verdadera.

while (condición) {

// declaraciones

}

En el ciclo "do-while", la condición se comprueba al final del ciclo. Entonces, el ciclo se ejecuta al menos una vez.

hacer{

// declaraciones

} while (condición)

El programa para encontrar el factorial de 3 (¡3!) Usando iteración (“bucle for”) es el siguiente.

int main () {

intn = 3, factorial = 1;

inti;

para (i = 1; i <= n; i ++) {

factorial = factorial * i;

}

printf (“Factorial es% d / n”, factorial);

return 0;

}

¿Cuáles son las similitudes entre la recursividad y la iteración?

  • Ambas son técnicas para resolver un problema.
  • La tarea se puede resolver en recursividad o iteración.

¿Cuál es la diferencia entre recursividad e iteración?

Diferencia del medio del artículo antes de la mesa

Recurrencia vs iteración

La recursividad es un método para llamar a una función dentro de la misma función. La iteración es un bloque de instrucciones que se repite hasta que la condición dada es verdadera.
Complejidad espacial
La complejidad espacial de los programas recursivos es mayor que la de las iteraciones. La complejidad del espacio es menor en las iteraciones.
Velocidad
La ejecución de la recursividad es lenta. Normalmente, la iteración es más rápida que la recursividad.
Condición
Si no hay una condición de terminación, puede haber una recursividad infinita. Si la condición nunca se vuelve falsa, será una iteración infinita.
Apilar
En recursividad, la pila se usa para almacenar variables locales cuando se llama a la función. En una iteración, la pila no se usa.
Legibilidad de código
Un programa recursivo es más legible. El programa iterativo es más difícil de leer que un programa recursivo.

Resumen: recursividad vs iteración

Este artículo discutió la diferencia entre recursividad e iteración. Ambos se pueden utilizar para resolver problemas de programación. La diferencia entre la recursividad y la iteración es que la recursividad es un mecanismo para llamar a una función dentro de la misma función y la iteración para ejecutar un conjunto de instrucciones repetidamente hasta que la condición dada sea verdadera. Si un problema se puede resolver de forma recursiva, también se puede resolver mediante iteraciones.

Descargue la versión PDF de Recursion vs Iteration

Puede descargar la versión PDF de este artículo y utilizarla para fines sin conexión según la nota de cita. Descargue la versión PDF aquí Diferencia entre recursividad e iteración

Recomendado: