Se han estudiado varios métodos que se pueden implementar fácilmente, bien de modo recursivo,
bien de modo iterativo. En esta sección se comparan los dos enfoques y se examinan las razones
por las que el programador puede elegir un enfoque u otro según la situación específica.
Tanto la iteración como la recursión se basan en una estructura de control: la iteración utiliza
una estructura repetitiva y la recursión utiliza una estructura de selección. Tanto la iteración
como la recursión implican repetición: la iteración utiliza explícitamente una estructura repetitiva
mientras que la recursión consigue la repetición mediante llamadas repetidas al método.
La iteración y la recursión implican cada una un test de terminación (condición de parada). La
iteración termina cuando la condición del bucle no se cumple, mientras que la recursión termina
cuando se reconoce un caso base o se alcanza la condición de parada.
La recursión tiene muchas desventajas. Se invoca repetidamente al mecanismo de llamadas a
métodos y, en consecuencia, se necesita un tiempo suplementario para realizar cada llamada.
Esta característica puede resultar cara en tiempo de procesador y espacio de memoria. Cada
llamada recursiva produce una nueva creación y copia de las variables de la función, esto consume
más memoria e incrementa el tiempo de ejecución. Por el contrario, la iteración se produce
dentro de un método, de modo que las operaciones suplementarias en la llamada al método y en
la asignación de memoria adicional son omitidas.
Entonces, ¿cuáles son las razones para elegir la recursión? La razón fundamental es que
existen numerosos problemas complejos que poseen naturaleza recursiva y, en consecuencia, son
más fáciles de implementar con algoritmos de este tipo. Sin embargo, en condiciones críticas de
tiempo y de memoria; es decir, cuando el consumo de tiempo y memoria sean decisivos o concluyentes
para la resolución del problema, la solución a elegir debe ser, normalmente, la iterativa.
No hay comentarios.:
Publicar un comentario
Es muy importante tu comentarios: