Sunteți pe pagina 1din 11

INSTITUTO TECNOLOGICO DE SALINA CRUZ

NOMBRE DEL ALUMNO: VICTOR MIGUEL REYES HERNANDEZ

DOCENTE: M.C. SUSANA MONICA ROMAN NAJERA

MATERIA: ESTRUCTURA Y ORGANIZACIN DE DATOS

ACTIVIDAD: INVESTIGACION DOCUMENTAL SOBRE


RECURSIVIDAD

NUMERO DE CONTROL: 131020108

CARRERA: INGENIERIA EN TECNOLOGIAS DE LA INFORMACION Y DE


LAS COMUNICACIONES

GRADO: 3 SEMESTRE

SALINA CRUZ, OAXACA

GRUPO: 3E

OCTUBRE DEL 2014

INDICE
INTRODUCCION ........................................................................................... 3
DEFINICION ................................................................................................. 4
FUNCIONAMIENTO INTERNO DE LA RECURSIVIDAD .................................... 5
TIPOS DE RECURSIVIDAD ............................................................................. 5
VENTAJAS Y DESVENTAJAS DE LA RECURSIVIDAD ........................................ 6
EJEMPLOS DE ALGORITMOS RECURSIVOS ................................................... 7
TIPOS DE RECURSIVIDAD ............................................................................. 8
CONCLUSIONES ......................................................................................... 10

INTRODUCCION
EN UN LENGUAJE ORIENTADO A OBJETOS COMO LO ES JAVA Y
SUS DIFERENTES PLATAFORMAS DE PROGRAMACION, NOS
PONE A PENSAR EN LA ESTRUCTURA QUE SE LLEVA EN SI
MISMA DE UN PROBLEMA DE LA VIDA REAL.
SIN EMBARGO EN ESTE TEMA HABLAREMOS SOBRE LA PARTE
DE RECURSIVIDAD EN EL QUE VEREMOS SU DEFINICION, SUS
TIPOS, EL FUNCIONAMIENTO INTERNO DE LA MISMA, ETC.
AL IGUAL QUE AL CREAR CIERTOS PROGRAMAS PODEMOS
IMPLEMENTAR ESTA FUNCION EN NUESTROS CODIGOS PARA
PODER SACAR UN MAYOR PROGRESO AL MOMENTO DE
PROGRAMAR.
ESTE TEMA ES MUY INTERESANTE PUESTO QUE VEREMOS LOS
HECHOS QUE SUCEDEN CUANDO LOS IMPLEMENTAMOS.

DEFINICION
La recursin es una tcnica de programacin en el cual un mtodo
puede llamarse a s mismo. La recursin es muy interesante y una
tcnica efectiva en programacin ya que puede producir algoritmos
cortos y eficientes.
Algo es recursivo si se define en trminos de s mismo (cuando para
definirse hace mencin a s mismo).
Si la invocacin de un subprograma (funcin o subrutina) se produce
desde el propio subprograma se dice que se trata de un subprograma
recursivo.
Un mtodo recursivo es un mtodo, directa o indirectamente, se hace
una llamada a s mismo.
La recursin consiste en el uso de mtodos recursivos.
Como ejemplo til se puede presentar el clculo de nmeros
factoriales. l factorial de 0 es, por definicin, 1.
Los factoriales de nmeros mayores se calculan mediante la
multiplicacin de 1 * 2 * n, incrementando el nmero de 1 en 1 hasta
llegar al nmero para el que se est calculando el factorial.

FUNCIONAMIENTO INTERNO DE LA RECURSIVIDAD


Cuando se llama a una funcin recursiva, se crea un nuevo juego de
variables locales, de este modo, si la funcin hace una llamada a s
misma, se guardan sus variables y parmetros en una pila de datos, y
la nueva instancia de la funcin trabajar con su propia copia de las
variables locales, cuando esta segunda instancia de la funcin retorna,
recupera las variables y los parmetros de la pila y continua la
ejecucin en el punto en que haba sido llamada.

TIPOS DE RECURSIVIDAD
Dentro de la teora de la recursin, se tiene que existen diferentes
tipos de recursin:
Recursin directa. Cuando el cdigo F tiene una sentencia que
involucra a F.
Recursin indirecta o cruzada: Cuando la funcin F involucra una
funcin G que invoca a la ves una funcin H, y as
sucesivamente, hasta que se involucra la funcin F. Por ejemplo
el algoritmo de Par o impar.
Recursin simple: Es aquella en cuya funcin solo aparece una
llamada recursiva. Se puede transformar con facilidad en
algoritmos iteractivos.

Recursin mltiple.- Se da cuando hay ms de una llamada a s


misma dentro del cuerpo de la funcin, resultando ms difcil de
transformar a iteractiva. Por ejemplo el algoritmo de Fibonacci.
Recursin anidada: En algunos de los argumentos de la llamada
hay una nueva llamada a s misma.
Recursin infinita: La iteracin y la recursin pueden producirse
infinitamente. Un bucle infinito ocurre si la prueba o test de
continuacin del bucle nunca se vuelve falsa. En realidad, la
recursin infinita significa que cada llamada recursiva produce
otra llamada recursiva y esta a su vez otra llamada recursiva, y
as para siempre. En la prctica, dicha funcin se ejecutar hasta
que la computadora agote la memoria disponible y se produzca
una terminacin anormal del programa.

VENTAJAS Y DESVENTAJAS DE LA RECURSIVIDAD


Las

funciones

recursivas

son

mecanismo

muy

eficientes

de

programacin pues facilitan el diseo de las mismas, sin embargo la


recursividad no es en todos los casos un buen modo de resolver
problemas, ya que existen casos en los que un algoritmo iterativo
resolvera de manera bastante adecuada un problema determinado.
La recursividad consume recursos adicionales de memoria y tiempo de
ejecucin, y se debe aplicar a funciones que realmente obtengan
beneficio directo. Para el caso de la funcin factorial parece ser una
buena medida el empleo de recursividad.

EJEMPLOS DE ALGORITMOS RECURSIVOS


Bsqueda Binaria: Dentro de los mtodos de bsqueda de
elementos, la bsqueda binaria es uno de los ms apropiados cuando
hablamos de datos que ya se encuentran ordenados.
Se basa en el fundamento de divide y vencers para localizar el
elemento deseado.
Es un proceso muy similar al que una persona utiliza para buscar
informacin en un entorno ordenado, por ejemplo en una agenda, si
uno abre la agenda en la parte central, por ejemplo en la M, y la letra a
buscar es la J, pues nicamente se desplaza al inicio de la agenda
que es la direccin correcta.
El algoritmo de bsqueda binaria comienza en el elemento central de
la lista.
Si el elemento central no es buscado, entonces se repite la bsqueda,
centrndose en la primera o segunda mitad, dependiendo de que el
elemento buscado sea ms pequeo o ms grande que el valor
central.
Suma de elementos de un arreglo: La idea de este algoritmo es
realizar la suma de todos los elementos de un arreglo de manera
recursiva, para ello es necesario encontrar el primer elemento del
arreglo y a partir de l de manera recursiva hacemos la recuperacin
de cada casilla del arreglo de manera que vamos sumando cada
elemento del arreglo hasta llegar al ltimo elemento del arreglo

representado por n.

Mximo elemento en un arreglo: La idea bsica en este algoritmo es


encontrar el nmero de mayor valor dentro de un arreglo de
elementos, para lograrlo recorreremos todo el arreglo de fin a inicio de
manera recursiva y en cada retroceso compararemos el valor actual
de la llamada con el resultado anterior a ella.
Permutaciones: El siguiente algoritmo resulta muy interesante pues
se trata de construir permutaciones de elementos de manera
recursiva. Las permutaciones de un conjunto son las diferentes
maneras de colocar sus elementos, usando todos ellos y sin repetir
ninguno.

TIPOS DE RECURSIVIDAD
Podemos distinguir dos tipos de recursividad:
Directa: Cuando un subprograma se llama a s mismo una o ms
veces directamente.

EJEMPLO: Como se mencion anteriormente la recursividad


directa se presenta cuando el mtodo se manda llamar a s mismo
dentro de su propio cuerpo de instrucciones.
public int Metodo(int n)
{
:
n = Metodo(n-1);

Indirecta: Cuando se definen una serie de subprogramas


usndose unos a otros, o cuando existe la llamada a mtodos de
forma encadenada y al terminar el ltimo mtodo llamado,
transfiere el control al anterior, hasta llegar al mtodo que inicio la
serie de llamadas.

public int Metodo1(int n)


{
:
n = Metodo2(n-1);
}
public int Metodo2(int n)
{
:
n = Metodo1(n-1);
}

CONCLUSIONES
COMO VIMOS ANTERIORMENTE EN EL TEMA PRESENTADO,
POR FIN TENEMOS UNA IDEA FACTIBLE DE LA RECURSIVIDAD
PARA ASI PODER TENER MAS CONCORDANCIA EN NUESTROS
PROGRAMAS.
CIERTAMENTE EXISTEN SUS TIPOS Y SUS FORMAS DE COMO
PODEMOS IMPLEMENTARLOS PERO LO QUE ME LLEVO A
CONCLUIR EN ESTE TEMA ES EL HECHO DE LA FORMA EN
COMO NOSOTROS LO UTILIZEMOS Y ASI NOS AHORRE UNA
BASTO NUMERO DE LINEAS DE CODIGO INNECESARIOS YA SEA
ESTO CIERTO O NO DEPENDIENDO DE CADA USUARIO
PROGRAMADOR.
EN LO QUE DECIMOS RECURSIVIDAD Y NO TENGAMOS IDEA DE
LO QUE ES PODEMOS SEGUIR INVESTIGANDO Y PRACTICANDO
SU USO EN EL PARA PODER ADAPTARNOS MAS FACILMENTE A
ELLO.

BIBLIOGRAFIA
TIPOS DE RECURSIVIDAD. EN LINEA. PAGINA CONSULTADA 21 DE OCTUBREDE 2014
DISPONIBLE EN: http://upsg01.foroactivo.com/t192-tipos-de-recursividad
RECURSIVIDAD. EN LINEA. PAGINA CONSULTADA 21 DE OCTUBRE DE 2014
DISPONIBLE EN:
http://www.paginasprodigy.com/edserna/cursos/estddatos/notas/Unidad2.%20Recursivi
dad.pdf
RECURSIVIDAD, CONCEPTOS BASICOS. EN LINEA. PAGINA CONSULTADA 21 DE OCTUBRE
DE 2014
DISPONIBLE EN: http://www.javaya.com.ar/detalleconcepto.php?codigo=123&inicio=40
RECURSIVIDAD. EN LINEA. PAGINA CONSULTADA 21 DE OCTUBRE DE 2014
DISPONIBLE EN:
http://www.programacionfacil.com/estructura_datos_csharp/definicion_recusividad
UNIDAD II, RECURSIVIDAD. EN LINEA. PAGINA CONSULTADA 21 DE OCTUBRE DE 2014
DISPONIBLE EN: https://sites.google.com/site/estdatjiq/home/unidad-ii

S-ar putea să vă placă și