SlideShare una empresa de Scribd logo
1 de 4
Descargar para leer sin conexión
RECURSIVIDAD
Concepto:
La recursividad (recursión) es aquella propiedad que posee un método por la cual puede llamarse a sí
mismo. Aunque se puede utilizar la recursividad como una alternativa a la iteración, una solución recursiva
es, normalmente, menos eficiente en términos de tiempo de computadora que una solución iterativa,
debido a las operaciones auxiliares que llevan consigo las invocaciones suplementarias a los métodos; sin
embargo, en muchas circunstancias, el uso de la recursión permite a los programadores especificar
soluciones naturales, sencillas, que serían, en caso contrario, difíciles de resolver. Por esta causa, la
recursión es una herramienta poderosa e importante en la resolución de problemas y en la programación.
Diversas técnicas algorítmicas utilizan la recursión, como los algoritmos divide y vence y los algoritmos de
vuelta atrás.
- Estructuras de Datos en Java - Luis Joyanes Aguilar. McGraw-Hill editorial
Un método recursivo puede llamar a otro método, que a su vez puede hacer una llamada de vuelta al
método recursivo. A dicho proceso se le conoce como llamada recursiva indirecta o recursividad indirecta.
Por ejemplo, el método A llama al método B, que hace una llamada de vuelta al método A. Esto se sigue
considerando como recursividad, debido a que la segunda llamada al método A se realiza mientras la
primera sigue activa; es decir, la primera llamada al método A no ha terminado todavía de ejecutarse
(debido a que está esperando que el método B le devuelva un resultado) y no ha regresado al método
original que llamó al método A.
- Como programar en Java – Deitel, séptima edición. Pearson editorial.
Un objeto recursivo es aquel que aparece en la definición de sí mismo, así como el que se llama a sí mismo.
Los árboles, por ejemplo, representan estructuras de datos, no lineales y dinámicas, más eficientes que
existen actualmente en la computación. La característica de los arboles es que son estructuras
inherentemente recursivas. Es decir, cualquier actividad de programación que se realice con árboles se
utiliza la recursividad.
- Estructuras de Datos - Silvia Guardati, tercera edición. McGraw-Hill editorial
Ejemplo de un método recursivo directo:
public class Adicion
{
public static void main(String []args)
{
Adicion n = new Adicion();
System.out.println(n.suma(5,4));
}
public int suma(int a, int b)
{
if (b == 0)
return a;
else
if (a == 0)
return b;
else
return 1 + suma(a, b - 1);
}
}
Impresión:
9
¿A qué se le conoce como recursividad directa? Acompáñelo de un ejemplo.
Se le llama caso de recursividad directa, cuando el programa o subprograma se llama directamente a sí
mismo. Por ejemplo como se muestra en la siguiente figura, la cual representa un programa y en alguna
parte de él aparece una llamada a sí mismo.
Ejemplo de un método recursivo directo:
//Programa que calcula e imprime el factorial del numero 5.
public class CalculoFactorial
{
public int factorial(int numero)
{
if ( numero <= 1 )
return 1;
else
return numero * factorial( numero - 1 );
}
}
public class PruebaFactorial
{
public static void main( String args[] )
{
CalculoFactorial calculoFactorial = new CalculoFactorial();
System.out.printf(“5! = “+calculoFactorial.factorial(5));
}
}
Impresión:
5! = 120
Subprograma P
{
Código
Llamada a P
}
¿A qué se le conoce como recursividad indirecta? Acompáñelo de un ejemplo.
Se le conoce a recursividad indirecta, cuando el subprograma llama a otro, y éste, en algún momento, llama
nuevamente al primero. Por ejemplo, la siguiente figura muestra como el subprograma P llama al
subprograma Q y éste, a su vez, invoca al primero; es decir, el control regresa a P
Ejemplo de un método recursivo indirecto:
//Programa que calcula e imprime los 10 primeros Fibonacci
public class CalculoFibonacci
{
public int fibonacci(int numero)
{
if ((numero == 0 ) || (numero == 1) )
return numero;
else
return fibonacci(numero - 1) + fibonacci(numero - 2);
}
public void mostrarFibonacci()
{
for (int contador = 0; contador <= 10; contador++)
System.out.printf( "Fibonacci de %d es: %dn", contador,
fibonacci( contador) );
}
}
public class PruebaFibonacci
{
public static void main(String args[])
{
CalculoFibonacci calculoFibonacci = new CalculoFibonacci();
calculoFibonacci.mostrarFibonacci();
}
}
Impresión:
Fibonacci de 0 es: 0
Fibonacci de 1 es: 1
Fibonacci de 2 es: 1
Fibonacci de 3 es: 2
Fibonacci de 4 es: 3
Fibonacci de 5 es: 5
Fibonacci de 6 es: 8
Fibonacci de 7 es: 13
Fibonacci de 8 es: 21
Fibonacci de 9 es: 34
Fibonacci de 10 es: 55
Subprograma P
{
Código
Llamada a Q
}
Subprograma Q
{
Código
Llamada a P
}
¿A qué se le conoce como componente base?
El componente base se define como la última instancia que obtiene un método recursivo permitiéndole a
este ser finito.
Para que una definición recursiva este completamente identificada es necesario tener un componente base
que se calcule sin recursividad.
Las siguientes figuras muestran el ejemplo de un caso infinito a falta de un componente base, mientras que
el segundo es finito y devuelve un resultado.
Conclusiones
En este trabajo puedo concluir que la recursividad es una propiedad importante en los métodos que nos
permite volver a llamar al mismo método en sí. Puede darse el caso en el que, un método A se llame a sí
mismo, a este caso se le llama recursividad directa, pero si se da el caso donde el método A llama a un
segundo método B y este vuele a llamar al método A, se dice entonces que es recursividad indirecta.
Para que un método recursivo sea finito debe contener un componente base, también se le conoce como
caso base, el cual debe ser producto de un cálculo no recursivo, y podrá ser la última instancia que puede
tomar una llamada recursiva.
public int conteo(int n)
{
n = conteo(n+1);
return n
}
Conteo infinito sin salida.
public int conteo(int n)
{
if(n==5)
return 1;
else
return n + conteo(n+1);
}
Conteo hasta 11.
ALUMNO: PACHECO CHAVEZ ANGEL MARTIN.
MATERIA: ESTRUCTURA DE DATOS.
TERCER SEMESTRE – INSTITUTO TECNOLÓGICO DE CIUDAD GUZMÁN
8 DE SEPTIEMBRE DE 2015

Más contenido relacionado

La actualidad más candente

Listas, pilas y colas
Listas, pilas y colasListas, pilas y colas
Listas, pilas y colasknowallrpa
 
Colas en programacion
Colas en programacionColas en programacion
Colas en programacionLuis Igoodbad
 
Unidad 3 estructura lineales
Unidad 3 estructura linealesUnidad 3 estructura lineales
Unidad 3 estructura linealesEnrique2194
 
Calculadora Gráfica Java implementando el Patrón MVC
Calculadora Gráfica Java implementando el Patrón MVCCalculadora Gráfica Java implementando el Patrón MVC
Calculadora Gráfica Java implementando el Patrón MVCIgnacio Aular Reyes
 
Metodologías Para AnáLisis Y DiseñO Orientado A Objetos
Metodologías Para AnáLisis Y DiseñO Orientado A ObjetosMetodologías Para AnáLisis Y DiseñO Orientado A Objetos
Metodologías Para AnáLisis Y DiseñO Orientado A Objetoshector_h30
 
NORMALIZACIÓN DE BASES DE DATOS.pdf
NORMALIZACIÓN DE BASES DE DATOS.pdfNORMALIZACIÓN DE BASES DE DATOS.pdf
NORMALIZACIÓN DE BASES DE DATOS.pdfSumica1
 
Insertar elementos en una cola
Insertar elementos en una colaInsertar elementos en una cola
Insertar elementos en una colajeffersoncenteno
 
Control de versiones desde Eclipse.
Control de versiones desde Eclipse.Control de versiones desde Eclipse.
Control de versiones desde Eclipse.Fontyed
 
Estructuras de datos osvaldo cairo
Estructuras de datos   osvaldo cairoEstructuras de datos   osvaldo cairo
Estructuras de datos osvaldo cairoYossLu Molina
 
Listas Doblemente Enlazadas y Listas Circulares
Listas Doblemente Enlazadas y Listas CircularesListas Doblemente Enlazadas y Listas Circulares
Listas Doblemente Enlazadas y Listas CircularesMago Julio Cesar
 
Estructura de datos : Cola
Estructura de datos : ColaEstructura de datos : Cola
Estructura de datos : ColaEmerson Garay
 

La actualidad más candente (20)

Listas, pilas y colas
Listas, pilas y colasListas, pilas y colas
Listas, pilas y colas
 
Recursividad
RecursividadRecursividad
Recursividad
 
Colas en programacion
Colas en programacionColas en programacion
Colas en programacion
 
Tipos de listas en estructura de datos
Tipos de listas en estructura de datosTipos de listas en estructura de datos
Tipos de listas en estructura de datos
 
Unidad 3 estructura lineales
Unidad 3 estructura linealesUnidad 3 estructura lineales
Unidad 3 estructura lineales
 
Calculadora Gráfica Java implementando el Patrón MVC
Calculadora Gráfica Java implementando el Patrón MVCCalculadora Gráfica Java implementando el Patrón MVC
Calculadora Gráfica Java implementando el Patrón MVC
 
Búsqueda secuencial y binaria
Búsqueda secuencial y binariaBúsqueda secuencial y binaria
Búsqueda secuencial y binaria
 
Metodologías Para AnáLisis Y DiseñO Orientado A Objetos
Metodologías Para AnáLisis Y DiseñO Orientado A ObjetosMetodologías Para AnáLisis Y DiseñO Orientado A Objetos
Metodologías Para AnáLisis Y DiseñO Orientado A Objetos
 
NORMALIZACIÓN DE BASES DE DATOS.pdf
NORMALIZACIÓN DE BASES DE DATOS.pdfNORMALIZACIÓN DE BASES DE DATOS.pdf
NORMALIZACIÓN DE BASES DE DATOS.pdf
 
Arreglos unidimensionales
Arreglos unidimensionalesArreglos unidimensionales
Arreglos unidimensionales
 
Diagrama de Actividades
Diagrama de ActividadesDiagrama de Actividades
Diagrama de Actividades
 
Insertar elementos en una cola
Insertar elementos en una colaInsertar elementos en una cola
Insertar elementos en una cola
 
Estructura de Datos - Unidad 6 Metodos de busqueda
Estructura de Datos - Unidad 6 Metodos de busquedaEstructura de Datos - Unidad 6 Metodos de busqueda
Estructura de Datos - Unidad 6 Metodos de busqueda
 
Recursividad en POO - Java
Recursividad en POO - JavaRecursividad en POO - Java
Recursividad en POO - Java
 
Control de versiones desde Eclipse.
Control de versiones desde Eclipse.Control de versiones desde Eclipse.
Control de versiones desde Eclipse.
 
Recorrido en árboles binarios
Recorrido en árboles binariosRecorrido en árboles binarios
Recorrido en árboles binarios
 
Estructuras de datos osvaldo cairo
Estructuras de datos   osvaldo cairoEstructuras de datos   osvaldo cairo
Estructuras de datos osvaldo cairo
 
Listas Doblemente Enlazadas y Listas Circulares
Listas Doblemente Enlazadas y Listas CircularesListas Doblemente Enlazadas y Listas Circulares
Listas Doblemente Enlazadas y Listas Circulares
 
Teoría de Automatas
Teoría de AutomatasTeoría de Automatas
Teoría de Automatas
 
Estructura de datos : Cola
Estructura de datos : ColaEstructura de datos : Cola
Estructura de datos : Cola
 

Similar a Recursividad en Java (20)

Recursividad
RecursividadRecursividad
Recursividad
 
recursividad
recursividadrecursividad
recursividad
 
Informe Técnico - Recursividad Unidad 2 (Rubi Veronica)
Informe Técnico - Recursividad Unidad 2 (Rubi Veronica)Informe Técnico - Recursividad Unidad 2 (Rubi Veronica)
Informe Técnico - Recursividad Unidad 2 (Rubi Veronica)
 
La_Recursividad.pptx
La_Recursividad.pptxLa_Recursividad.pptx
La_Recursividad.pptx
 
Recursividad directa e indirecta
Recursividad directa e indirectaRecursividad directa e indirecta
Recursividad directa e indirecta
 
SUBPROGRAMAS
SUBPROGRAMASSUBPROGRAMAS
SUBPROGRAMAS
 
Capítulo 3 Algoritmos recursivos.pdf
Capítulo 3 Algoritmos recursivos.pdfCapítulo 3 Algoritmos recursivos.pdf
Capítulo 3 Algoritmos recursivos.pdf
 
Recursión
RecursiónRecursión
Recursión
 
2. Recursividad
2. Recursividad2. Recursividad
2. Recursividad
 
recursividad.pptx
recursividad.pptxrecursividad.pptx
recursividad.pptx
 
recursividad EN PROGRAMACION ORIENTADA .pptx
recursividad EN PROGRAMACION ORIENTADA .pptxrecursividad EN PROGRAMACION ORIENTADA .pptx
recursividad EN PROGRAMACION ORIENTADA .pptx
 
Funciones recursivas en C++
Funciones recursivas en C++Funciones recursivas en C++
Funciones recursivas en C++
 
Recursividad2019
Recursividad2019Recursividad2019
Recursividad2019
 
Estructura de datos - Unidad 2: Recursividad
Estructura de datos - Unidad 2: Recursividad Estructura de datos - Unidad 2: Recursividad
Estructura de datos - Unidad 2: Recursividad
 
03 tda1 t2018
03 tda1 t201803 tda1 t2018
03 tda1 t2018
 
Unidad 2 diana karina pech may
Unidad 2 diana karina pech mayUnidad 2 diana karina pech may
Unidad 2 diana karina pech may
 
sentenciareturnymetodos
sentenciareturnymetodossentenciareturnymetodos
sentenciareturnymetodos
 
Recursividad 100329105433-phpapp01
Recursividad 100329105433-phpapp01Recursividad 100329105433-phpapp01
Recursividad 100329105433-phpapp01
 
RECURSIVIDAD
RECURSIVIDADRECURSIVIDAD
RECURSIVIDAD
 
Programación 1: modularización
Programación 1: modularizaciónProgramación 1: modularización
Programación 1: modularización
 

Más de Martin Pacheco

Aspectos de la clase Vector - Java
Aspectos de la clase Vector - JavaAspectos de la clase Vector - Java
Aspectos de la clase Vector - JavaMartin Pacheco
 
2.4 calor en los equipos de computo tipos de enfriamiento
2.4 calor en los equipos de computo   tipos de enfriamiento2.4 calor en los equipos de computo   tipos de enfriamiento
2.4 calor en los equipos de computo tipos de enfriamientoMartin Pacheco
 
Equivalencias del Sistema metrico e ingles.
Equivalencias del Sistema metrico e ingles.Equivalencias del Sistema metrico e ingles.
Equivalencias del Sistema metrico e ingles.Martin Pacheco
 
Externalización de costos
Externalización de costosExternalización de costos
Externalización de costosMartin Pacheco
 
Obsolecensia planificada y percibida
Obsolecensia planificada y percibidaObsolecensia planificada y percibida
Obsolecensia planificada y percibidaMartin Pacheco
 
Lenguajes de programación
Lenguajes de programaciónLenguajes de programación
Lenguajes de programaciónMartin Pacheco
 
Conceptos fundamentales de la programación
Conceptos fundamentales de la programaciónConceptos fundamentales de la programación
Conceptos fundamentales de la programaciónMartin Pacheco
 
Historia de Silicon Valley
Historia de Silicon ValleyHistoria de Silicon Valley
Historia de Silicon ValleyMartin Pacheco
 
Globo aeroestatico / Globo de cantoya
Globo aeroestatico / Globo de cantoyaGlobo aeroestatico / Globo de cantoya
Globo aeroestatico / Globo de cantoyaMartin Pacheco
 
Algoritmos y metodología para la solución de problemas
Algoritmos y metodología para la solución de problemasAlgoritmos y metodología para la solución de problemas
Algoritmos y metodología para la solución de problemasMartin Pacheco
 
Extinción de especies
Extinción de especiesExtinción de especies
Extinción de especiesMartin Pacheco
 
Propiedades generales de la matería
Propiedades generales de la materíaPropiedades generales de la matería
Propiedades generales de la materíaMartin Pacheco
 

Más de Martin Pacheco (17)

Aspectos de la clase Vector - Java
Aspectos de la clase Vector - JavaAspectos de la clase Vector - Java
Aspectos de la clase Vector - Java
 
2.4 calor en los equipos de computo tipos de enfriamiento
2.4 calor en los equipos de computo   tipos de enfriamiento2.4 calor en los equipos de computo   tipos de enfriamiento
2.4 calor en los equipos de computo tipos de enfriamiento
 
Equivalencias del Sistema metrico e ingles.
Equivalencias del Sistema metrico e ingles.Equivalencias del Sistema metrico e ingles.
Equivalencias del Sistema metrico e ingles.
 
Externalización de costos
Externalización de costosExternalización de costos
Externalización de costos
 
Obsolecensia planificada y percibida
Obsolecensia planificada y percibidaObsolecensia planificada y percibida
Obsolecensia planificada y percibida
 
Lenguajes de programación
Lenguajes de programaciónLenguajes de programación
Lenguajes de programación
 
Conceptos fundamentales de la programación
Conceptos fundamentales de la programaciónConceptos fundamentales de la programación
Conceptos fundamentales de la programación
 
Historia de Silicon Valley
Historia de Silicon ValleyHistoria de Silicon Valley
Historia de Silicon Valley
 
Cámara digital
Cámara digitalCámara digital
Cámara digital
 
Fibra optica
Fibra opticaFibra optica
Fibra optica
 
Globo aeroestatico / Globo de cantoya
Globo aeroestatico / Globo de cantoyaGlobo aeroestatico / Globo de cantoya
Globo aeroestatico / Globo de cantoya
 
Algoritmos y metodología para la solución de problemas
Algoritmos y metodología para la solución de problemasAlgoritmos y metodología para la solución de problemas
Algoritmos y metodología para la solución de problemas
 
Ecosistema sabana
Ecosistema   sabanaEcosistema   sabana
Ecosistema sabana
 
Extinción de especies
Extinción de especiesExtinción de especies
Extinción de especies
 
Reino animalia
Reino animaliaReino animalia
Reino animalia
 
Urbanización
UrbanizaciónUrbanización
Urbanización
 
Propiedades generales de la matería
Propiedades generales de la materíaPropiedades generales de la matería
Propiedades generales de la matería
 

Último

Técnicas de grabado y estampación : procesos y materiales
Técnicas de grabado y estampación : procesos y materialesTécnicas de grabado y estampación : procesos y materiales
Técnicas de grabado y estampación : procesos y materialesRaquel Martín Contreras
 
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdfEstrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdfAlfredoRamirez953210
 
DETALLES EN EL DISEÑO DE INTERIOR
DETALLES EN EL DISEÑO DE INTERIORDETALLES EN EL DISEÑO DE INTERIOR
DETALLES EN EL DISEÑO DE INTERIORGonella
 
PLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docx
PLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docxPLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docx
PLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docxJUANSIMONPACHIN
 
IV SES LUN 15 TUTO CUIDO MI MENTE CUIDANDO MI CUERPO YESSENIA 933623393 NUEV...
IV SES LUN 15 TUTO CUIDO MI MENTE CUIDANDO MI CUERPO  YESSENIA 933623393 NUEV...IV SES LUN 15 TUTO CUIDO MI MENTE CUIDANDO MI CUERPO  YESSENIA 933623393 NUEV...
IV SES LUN 15 TUTO CUIDO MI MENTE CUIDANDO MI CUERPO YESSENIA 933623393 NUEV...YobanaZevallosSantil1
 
c3.hu3.p1.p2.El ser humano y el sentido de su existencia.pptx
c3.hu3.p1.p2.El ser humano y el sentido de su existencia.pptxc3.hu3.p1.p2.El ser humano y el sentido de su existencia.pptx
c3.hu3.p1.p2.El ser humano y el sentido de su existencia.pptxMartín Ramírez
 
Estrategia de Enseñanza y Aprendizaje.pdf
Estrategia de Enseñanza y Aprendizaje.pdfEstrategia de Enseñanza y Aprendizaje.pdf
Estrategia de Enseñanza y Aprendizaje.pdfromanmillans
 
PINTURA ITALIANA DEL CINQUECENTO (SIGLO XVI).ppt
PINTURA ITALIANA DEL CINQUECENTO (SIGLO XVI).pptPINTURA ITALIANA DEL CINQUECENTO (SIGLO XVI).ppt
PINTURA ITALIANA DEL CINQUECENTO (SIGLO XVI).pptAlberto Rubio
 
Fundamentos y Principios de Psicopedagogía..pdf
Fundamentos y Principios de Psicopedagogía..pdfFundamentos y Principios de Psicopedagogía..pdf
Fundamentos y Principios de Psicopedagogía..pdfsamyarrocha1
 
BIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdf
BIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdfBIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdf
BIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdfCESARMALAGA4
 
Metabolismo 3: Anabolismo y Fotosíntesis 2024
Metabolismo 3: Anabolismo y Fotosíntesis 2024Metabolismo 3: Anabolismo y Fotosíntesis 2024
Metabolismo 3: Anabolismo y Fotosíntesis 2024IES Vicent Andres Estelles
 
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...fcastellanos3
 
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdfOswaldoGonzalezCruz
 
Monitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptx
Monitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptxMonitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptx
Monitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptxJUANCARLOSAPARCANARE
 
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptxPPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptxOscarEduardoSanchezC
 
Uses of simple past and time expressions
Uses of simple past and time expressionsUses of simple past and time expressions
Uses of simple past and time expressionsConsueloSantana3
 
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMALVOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMALEDUCCUniversidadCatl
 
Tema 8.- Gestion de la imagen a traves de la comunicacion de crisis.pdf
Tema 8.- Gestion de la imagen a traves de la comunicacion de crisis.pdfTema 8.- Gestion de la imagen a traves de la comunicacion de crisis.pdf
Tema 8.- Gestion de la imagen a traves de la comunicacion de crisis.pdfDaniel Ángel Corral de la Mata, Ph.D.
 

Último (20)

La luz brilla en la oscuridad. Necesitamos luz
La luz brilla en la oscuridad. Necesitamos luzLa luz brilla en la oscuridad. Necesitamos luz
La luz brilla en la oscuridad. Necesitamos luz
 
Técnicas de grabado y estampación : procesos y materiales
Técnicas de grabado y estampación : procesos y materialesTécnicas de grabado y estampación : procesos y materiales
Técnicas de grabado y estampación : procesos y materiales
 
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdfEstrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
 
DETALLES EN EL DISEÑO DE INTERIOR
DETALLES EN EL DISEÑO DE INTERIORDETALLES EN EL DISEÑO DE INTERIOR
DETALLES EN EL DISEÑO DE INTERIOR
 
Tema 7.- E-COMMERCE SISTEMAS DE INFORMACION.pdf
Tema 7.- E-COMMERCE SISTEMAS DE INFORMACION.pdfTema 7.- E-COMMERCE SISTEMAS DE INFORMACION.pdf
Tema 7.- E-COMMERCE SISTEMAS DE INFORMACION.pdf
 
PLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docx
PLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docxPLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docx
PLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docx
 
IV SES LUN 15 TUTO CUIDO MI MENTE CUIDANDO MI CUERPO YESSENIA 933623393 NUEV...
IV SES LUN 15 TUTO CUIDO MI MENTE CUIDANDO MI CUERPO  YESSENIA 933623393 NUEV...IV SES LUN 15 TUTO CUIDO MI MENTE CUIDANDO MI CUERPO  YESSENIA 933623393 NUEV...
IV SES LUN 15 TUTO CUIDO MI MENTE CUIDANDO MI CUERPO YESSENIA 933623393 NUEV...
 
c3.hu3.p1.p2.El ser humano y el sentido de su existencia.pptx
c3.hu3.p1.p2.El ser humano y el sentido de su existencia.pptxc3.hu3.p1.p2.El ser humano y el sentido de su existencia.pptx
c3.hu3.p1.p2.El ser humano y el sentido de su existencia.pptx
 
Estrategia de Enseñanza y Aprendizaje.pdf
Estrategia de Enseñanza y Aprendizaje.pdfEstrategia de Enseñanza y Aprendizaje.pdf
Estrategia de Enseñanza y Aprendizaje.pdf
 
PINTURA ITALIANA DEL CINQUECENTO (SIGLO XVI).ppt
PINTURA ITALIANA DEL CINQUECENTO (SIGLO XVI).pptPINTURA ITALIANA DEL CINQUECENTO (SIGLO XVI).ppt
PINTURA ITALIANA DEL CINQUECENTO (SIGLO XVI).ppt
 
Fundamentos y Principios de Psicopedagogía..pdf
Fundamentos y Principios de Psicopedagogía..pdfFundamentos y Principios de Psicopedagogía..pdf
Fundamentos y Principios de Psicopedagogía..pdf
 
BIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdf
BIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdfBIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdf
BIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdf
 
Metabolismo 3: Anabolismo y Fotosíntesis 2024
Metabolismo 3: Anabolismo y Fotosíntesis 2024Metabolismo 3: Anabolismo y Fotosíntesis 2024
Metabolismo 3: Anabolismo y Fotosíntesis 2024
 
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
 
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf
 
Monitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptx
Monitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptxMonitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptx
Monitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptx
 
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptxPPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
 
Uses of simple past and time expressions
Uses of simple past and time expressionsUses of simple past and time expressions
Uses of simple past and time expressions
 
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMALVOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
 
Tema 8.- Gestion de la imagen a traves de la comunicacion de crisis.pdf
Tema 8.- Gestion de la imagen a traves de la comunicacion de crisis.pdfTema 8.- Gestion de la imagen a traves de la comunicacion de crisis.pdf
Tema 8.- Gestion de la imagen a traves de la comunicacion de crisis.pdf
 

Recursividad en Java

  • 1. RECURSIVIDAD Concepto: La recursividad (recursión) es aquella propiedad que posee un método por la cual puede llamarse a sí mismo. Aunque se puede utilizar la recursividad como una alternativa a la iteración, una solución recursiva es, normalmente, menos eficiente en términos de tiempo de computadora que una solución iterativa, debido a las operaciones auxiliares que llevan consigo las invocaciones suplementarias a los métodos; sin embargo, en muchas circunstancias, el uso de la recursión permite a los programadores especificar soluciones naturales, sencillas, que serían, en caso contrario, difíciles de resolver. Por esta causa, la recursión es una herramienta poderosa e importante en la resolución de problemas y en la programación. Diversas técnicas algorítmicas utilizan la recursión, como los algoritmos divide y vence y los algoritmos de vuelta atrás. - Estructuras de Datos en Java - Luis Joyanes Aguilar. McGraw-Hill editorial Un método recursivo puede llamar a otro método, que a su vez puede hacer una llamada de vuelta al método recursivo. A dicho proceso se le conoce como llamada recursiva indirecta o recursividad indirecta. Por ejemplo, el método A llama al método B, que hace una llamada de vuelta al método A. Esto se sigue considerando como recursividad, debido a que la segunda llamada al método A se realiza mientras la primera sigue activa; es decir, la primera llamada al método A no ha terminado todavía de ejecutarse (debido a que está esperando que el método B le devuelva un resultado) y no ha regresado al método original que llamó al método A. - Como programar en Java – Deitel, séptima edición. Pearson editorial. Un objeto recursivo es aquel que aparece en la definición de sí mismo, así como el que se llama a sí mismo. Los árboles, por ejemplo, representan estructuras de datos, no lineales y dinámicas, más eficientes que existen actualmente en la computación. La característica de los arboles es que son estructuras inherentemente recursivas. Es decir, cualquier actividad de programación que se realice con árboles se utiliza la recursividad. - Estructuras de Datos - Silvia Guardati, tercera edición. McGraw-Hill editorial Ejemplo de un método recursivo directo: public class Adicion { public static void main(String []args) { Adicion n = new Adicion(); System.out.println(n.suma(5,4)); } public int suma(int a, int b) { if (b == 0) return a; else if (a == 0) return b; else return 1 + suma(a, b - 1); } }
  • 2. Impresión: 9 ¿A qué se le conoce como recursividad directa? Acompáñelo de un ejemplo. Se le llama caso de recursividad directa, cuando el programa o subprograma se llama directamente a sí mismo. Por ejemplo como se muestra en la siguiente figura, la cual representa un programa y en alguna parte de él aparece una llamada a sí mismo. Ejemplo de un método recursivo directo: //Programa que calcula e imprime el factorial del numero 5. public class CalculoFactorial { public int factorial(int numero) { if ( numero <= 1 ) return 1; else return numero * factorial( numero - 1 ); } } public class PruebaFactorial { public static void main( String args[] ) { CalculoFactorial calculoFactorial = new CalculoFactorial(); System.out.printf(“5! = “+calculoFactorial.factorial(5)); } } Impresión: 5! = 120 Subprograma P { Código Llamada a P }
  • 3. ¿A qué se le conoce como recursividad indirecta? Acompáñelo de un ejemplo. Se le conoce a recursividad indirecta, cuando el subprograma llama a otro, y éste, en algún momento, llama nuevamente al primero. Por ejemplo, la siguiente figura muestra como el subprograma P llama al subprograma Q y éste, a su vez, invoca al primero; es decir, el control regresa a P Ejemplo de un método recursivo indirecto: //Programa que calcula e imprime los 10 primeros Fibonacci public class CalculoFibonacci { public int fibonacci(int numero) { if ((numero == 0 ) || (numero == 1) ) return numero; else return fibonacci(numero - 1) + fibonacci(numero - 2); } public void mostrarFibonacci() { for (int contador = 0; contador <= 10; contador++) System.out.printf( "Fibonacci de %d es: %dn", contador, fibonacci( contador) ); } } public class PruebaFibonacci { public static void main(String args[]) { CalculoFibonacci calculoFibonacci = new CalculoFibonacci(); calculoFibonacci.mostrarFibonacci(); } } Impresión: Fibonacci de 0 es: 0 Fibonacci de 1 es: 1 Fibonacci de 2 es: 1 Fibonacci de 3 es: 2 Fibonacci de 4 es: 3 Fibonacci de 5 es: 5 Fibonacci de 6 es: 8 Fibonacci de 7 es: 13 Fibonacci de 8 es: 21 Fibonacci de 9 es: 34 Fibonacci de 10 es: 55 Subprograma P { Código Llamada a Q } Subprograma Q { Código Llamada a P }
  • 4. ¿A qué se le conoce como componente base? El componente base se define como la última instancia que obtiene un método recursivo permitiéndole a este ser finito. Para que una definición recursiva este completamente identificada es necesario tener un componente base que se calcule sin recursividad. Las siguientes figuras muestran el ejemplo de un caso infinito a falta de un componente base, mientras que el segundo es finito y devuelve un resultado. Conclusiones En este trabajo puedo concluir que la recursividad es una propiedad importante en los métodos que nos permite volver a llamar al mismo método en sí. Puede darse el caso en el que, un método A se llame a sí mismo, a este caso se le llama recursividad directa, pero si se da el caso donde el método A llama a un segundo método B y este vuele a llamar al método A, se dice entonces que es recursividad indirecta. Para que un método recursivo sea finito debe contener un componente base, también se le conoce como caso base, el cual debe ser producto de un cálculo no recursivo, y podrá ser la última instancia que puede tomar una llamada recursiva. public int conteo(int n) { n = conteo(n+1); return n } Conteo infinito sin salida. public int conteo(int n) { if(n==5) return 1; else return n + conteo(n+1); } Conteo hasta 11. ALUMNO: PACHECO CHAVEZ ANGEL MARTIN. MATERIA: ESTRUCTURA DE DATOS. TERCER SEMESTRE – INSTITUTO TECNOLÓGICO DE CIUDAD GUZMÁN 8 DE SEPTIEMBRE DE 2015