Foro 3 Algoritmos Utl

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 3

FORO 3 RECURSION

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.

“Algoritmos y diagramas de flujo”  (2015), recuperado de

http://dcb.fi-c.unam.mx/users/alejandromra/Secuencial.pdf

Coloca un ejemplo mencionando alguna de sus aplicaciones más comunes. 


Aquí les dejo otra aplicación la serie de "Fibonacci" que muestra ampliamente la recursividad

 static int Fibonacci(int n)

        {

            //caso base

            if (n ==1 || n==2) return 1;

            // paso de recursividad

            return Fibonacci(n - 1) + Fibonacci(n - 2);

        }

        static void Main(string[] args)

        {

            // 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)

            // el resultado se da en la cantida que se adquirio en la decima iteracción.

            Console.WriteLine("el fibonaccio de {0} es: {1}", 10, Fibonacci(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:

“Serie de Fibonacci” (2016) recuperado de

https://es.wikipedia.org/wiki/Sucesi%C3%B3n_de_Fibonacci

“Recursividad utilizando la serie de Fibonacci” (2011), recuperado de 

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

1. Ahora responde si existe una situación donde sea contraproducente el implementar


cualquiera de los dos conceptos.

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. 

También podría gustarte

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy