Está en la página 1de 1

Iteració n vs Recursividad

Una operació n iterativa es la que repite un proceso durante un nú mero determinado de veces
(iteraciones), dependiendo de los pará metros definidos por el programador. Normalmente la salida de
una iteració n del proceso se utiliza como punto de inicio para la siguiente iteració n. Cada paso origina
el paso siguiente. El proceso continú a hasta que se alcanza una meta determinada y el proceso
termina.

Una operació n recursiva es un proceso que se repite hasta que se llega a una instrucció n final desde
dentro de la operació n. La técnica recursiva má s habitual en la programació n de computadoras es un
método de reducció n de un problema, desde arriba hacia abajo, consiguiendo una versió n del propio
problema cada vez má s simple hasta que se llega a un caso base. La solució n al caso base se combina
con la solució n de cada uno de los problemas anteriores hasta llegar al primero, al caso má s
complicado.

Diferencia
- La diferencia má s importante entre las operaciones recursivas y las iterativas es que los pasos de
una operació n iterativa se realizan uno cada vez y dirigen la ejecució n directamente al siguiente paso.
En una operació n recursiva, cada paso después del paso inicial es una réplica del paso anterior.
Ademá s, desde arriba hacia abajo, cada paso es un poco má s sencillo que el que hay justo "encima". Al
final de la operació n, todas las soluciones se combinan para resolver el problema.

Ejemplos:

- Operació n recursiva. El factorial de un nú mero es el producto de los enteros positivos menores o


iguales que ese nú mero. Resolver este problema recursivamente requiere multiplicar el nú mero inicial
por sí mismo menos 1. La expresió n recursiva es n(n - 1), donde n es el nú mero inicial. Cada paso es
un poco má s sencillo que el paso anterior. La operació n termina cuando n se reduce a 1.
- Iteració n es encontrar la suma de un conjunto de nú meros. La expresió n iterativa es (n + (n + 1)),
donde n es el nú mero inicial. Cada paso empieza con la solució n del paso anterior. La operació n
termina cuando n llega al nú mero deseado.

Una posible implementació n iterativa de la funció n factorial vista anteriormente sería:


def factorial(n):
""" Precondición: n entero >=0
Devuelve: n! """

fact = 1
for num in xrange(n, 1, -1):
fact *= num

return fact

También podría gustarte