Foro 3 Algoritmos Utl
Foro 3 Algoritmos Utl
Foro 3 Algoritmos Utl
Primera etapa:
1. Se plantea en esta ocasión que se pueda definir solamente los dos conceptos primordiales de
esta unidad que es la de Recursividad y por otro lado la de Iteración.
2. Coloca un ejemplo mencionando alguna de sus aplicaciones más comunes.
Recursividad
El paso de recursividad se ejecuta mientras la llamada original al método sigue estando activa (es
decir, mientras no haya finalizado la ejecución). El paso de recursividad puede originar muchas
más llamadas recursivas, a medida que el método divida cada nuevo sub problema en dos piezas
conceptuales. Para que la recursividad pueda terminar en un momento dado, cada vez que el
método se llama a sí mismo con una versión un poco más simple del problema original, la
secuencia de problemas cada vez más pequeños debe convergir en el caso base. En ese punto, el
método reconoce el caso base y devuelve un resultado a la copia anterior del método. Después se
produce una secuencia de instrucciones return hasta que la llamada original al método devuelve el
resultado al método que hizo la llamada.
Harvey M. Deitel, Inc. Paul J. Deitel, (2007), Cómo programar en C#, PEARS ON EDUCACIÓN,
México, (Capítulo 7 Métodos).
Repetitiva o iterativa
Son aquellas en las que las acciones se ejecutan un número determinado de veces y dependen de
un valor predefinido o el cumplimiento de una determinada expresión lógica. Un bucle o lazo es el
conjunto de acciones a repetir. En consecuencia es preciso disponer de estructuras algorítmicas
que permitan describir una iteración de forma cómoda. Las tres estructuras más usuales
dependiendo de que la condición se encuentre al principio o al final de la iteración son: Estructura
mientras, repetir hasta y estructura para.
http://dcb.fi-c.unam.mx/users/alejandromra/Secuencial.pdf
{
}
{
// 0-1, (1), 1-1, (2), 1-2 (3), 2-3 (4), 3-5 (5), 5-8 (6), 8-13 (7), 13-21 (8), 21-34 (9), 34-55 (10)
Console.ReadLine();
}
Este ejemplo calcula la serie de Fibonacci hasta llegar a 10 iteraciones el cual da resultado de 55,
en base a lo leído en:
https://es.wikipedia.org/wiki/Sucesi%C3%B3n_de_Fibonacci
https://www.youtube.com/watch?v=QDyRNiRNcKo
Segunda etapa:
Ya tenemos lo que es claro en cuanto a lo que es una iteración, así como una recursión
No existe una situación contraproducente hacer algoritmos que utilicen recursión, o que
solamente se deba utilizar iteración, o que uno sea mejor que otro, realmente no pasa
eso, y simplemente cualquier algoritmo que se implemente usando recursión, también se
puede hacer con iteración. No significa que siempre uno sea mejor que otro. Cabe
mencionar que ciertos problemas se resuelven mejor con recursión pero otros se
resuelven mejor o son más robustos usando iteración.
Pero un claro ejemplo son los árboles, porque la estructura misma se presta para
recorrerla utilizando recursión; pero también es correcto hacer lo mismo con iteración,
pero es más complicado. Cada uno tendrá sus ventajas y desventajas. Para concluir con
esta pregunta, la decisión entre uno y otro se puede basar en criterios como desempeño y
lo entendible que quede el código.