[C con Clase] Diferencia técnica entre iteración y recursividad.

andrés atltras en gmail.com
Jue Dic 31 15:03:43 CET 2009


Hola.
La recursividad podría considerarse un caso especial de iteración en el
que la propia función se llama a sí misma bajo una determinada
condición. 
Más concretamente:

La iteración consiste en la repetición de unas determinadas sentencias
hasta que se cumple cierta condición que indica la detención del
proceso. Durante un proceso iterativo las sentencias que se repiten
pueden incluir llamadas a funciones, pero en cada nuevo ciclo de
iteración estas se inician y se detienen, con todo lo que esto implica
en lo referente a reserva de memoria.

La recursividad consiste en la llamada de una función dada a sí misma
hasta que se cumple una condición solución. Al contrario que en la
iteración en cada ciclo recursivo se inicia una llamada a la función
recursiva, pero no se produce la detención de la función que ha sido
llamada, dado que la función se está llamando a sí misma hasta alcanzar
la condición solución. Esto implica un consumo de memoria muy superior
dado que reserva memoria para todas las variables usadas por la función
tantas veces como esta es llamada.

No se si me habré explicado con claridad, pero es que lo he escrito un
poco al vuelo por las prisas.

Un saludo a todos.

> Buena, esta duda me ha surgido durante los últimos días. Que  
> diferencia hay técnicamente entre la resolución iterativa y la  
> resolución utilizando recursividad ¿cual es más rápida?¿cual utiliza  
> más recursos del sistema?
> 
> Un saludo y feliz 2010
> 






Más información sobre la lista de distribución Cconclase