Please enable JavaScript.
Coggle requires JavaScript to display documents.
UNIDAD 2 "RECURSIVIDAD", descarga, estructura-de-datos-unidad-1…
UNIDAD 2 "RECURSIVIDAD"
2.1 DEFINICION
Un problema que pueda ser definido en función de su tamaño, sea este N, pueda ser dividido en instancias más pequeñas (< N) del mismo problema y se conozca la solución explícita a las instancias más simples, lo que se conoce como casos base, se puede aplicar inducción sobre las llamadas más pequeñas y suponer que estas quedan resueltas.
Factorial:*
Se desea calcular N (el factorial de , que se define como el producto de
todos los enteros positivos de 1 a N).**
* Algoritmo de ordenación por fusión
:
Sea v un vector de n elementos, podemos
separar el vector en dos mitades.
2.2 PROCEDIMIENTO RECURSIVOS
Secuencia Fibonacci:
La secuencia de FIbonacci es aquella secuencia de enteros donde cada elemento
es la suma de los dos anteriores.
0 1 2 3 4 5 6 7 8 ..... <--- fib
0,1 ,1 ,2 ,3 ,5 ,8 ,13 ,21 ,...
,
Definicion Recursiva
if n == 0 or n == 1 entonces
fib(n) = n
if n >= 2 entonces
fib(n) = fib(n-2) + fib(n-1) //Llamadas recursivas
A
lgoritmo de la Secuencia Fibonacci
Funcion FIB(n)
Inicio
Si n == 0 o n == 1 entonces
FIB<--n
Si No
FIB<--Fib(n-2)+FIB(n-1)
Fin_Si
Fin_Funcion
Procedimientos Recursivos
1) Funcion Factorial
2) Secuencia Fibonacci
3) Torres de Hanoi
4) Busqueda Binaria
2.3 EJEMPLOS DE CASOS RECURSIVOS
En el siguiente ejemplo se muetra un procedimiento recursivo.
using System;using System.Collections.Generic;using
System.ComponentModel;using System.Data;using System.Drawing;using
System.Text;using System.Windows.Forms;namespace
WindowsApplication1{public partial class Recursividad : Form{public
Recursividad(){InitializeComponent();}double r;int fin = 0;private void
button1_Click(object sender, EventArgs e){fin =
int.Parse(textBox4.Text.ToString());listBox1.Items.Clear();
*listBox1.Items.Add("x\ty");evaluar();}//Procedimiento recusivopublic void
evaluar(){while (fin <= int.Parse(textBox5.Text.ToString())){r =
int.Parse(textBox1.Text.ToString())
(fin * fin) +int.Parse(textBox2.Text.ToString())
fin +int.Parse(textBox3.Text.ToString());listBox1.Items.Add(fin.ToString() + "\t" +
r.ToString());fin++;evaluar();}}}**
: