SlideShare una empresa de Scribd logo
1 de 4
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 deDatos en Java- Luis Joyanes Aguilar.McGraw-Hilleditorial
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 programarenJava– Deitel,séptima edición.Pearsoneditorial.
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 deDatos - SilviaGuardati,tercera edición. McGraw-Hilleditorial
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

Bases de datos deductivas
Bases de datos deductivas Bases de datos deductivas
Bases de datos deductivas natar25
 
PUNTEROS (APUNTADORES) EN C++
PUNTEROS (APUNTADORES) EN C++PUNTEROS (APUNTADORES) EN C++
PUNTEROS (APUNTADORES) EN C++die_dex
 
Teoria de Grafos. Conceptos básicos.
Teoria de Grafos. Conceptos básicos.Teoria de Grafos. Conceptos básicos.
Teoria de Grafos. Conceptos básicos.Nabor Chirinos
 
Pilas como estructura de datos..
Pilas como estructura de datos..Pilas como estructura de datos..
Pilas como estructura de datos..NANO-06
 
POO: Encapsulamiento, principio de ocultación, recolección de basura
POO: Encapsulamiento, principio de ocultación, recolección de basuraPOO: Encapsulamiento, principio de ocultación, recolección de basura
POO: Encapsulamiento, principio de ocultación, recolección de basura1da4
 
Normalizacion boyce codd_4_fn
Normalizacion boyce codd_4_fnNormalizacion boyce codd_4_fn
Normalizacion boyce codd_4_fnLuis Jherry
 
Componentes y Librerías - Tópicos avanzados de programación.
Componentes y Librerías - Tópicos avanzados de programación.Componentes y Librerías - Tópicos avanzados de programación.
Componentes y Librerías - Tópicos avanzados de programación.Giancarlo Aguilar
 
POO Unidad 4: Persistencia de objetos y manejo de archivos
POO Unidad 4: Persistencia de objetos y manejo de archivosPOO Unidad 4: Persistencia de objetos y manejo de archivos
POO Unidad 4: Persistencia de objetos y manejo de archivosFranklin Parrales Bravo
 
Algebra relacional
Algebra relacionalAlgebra relacional
Algebra relacionalLuis Jherry
 
Herencia - Programación Orientada a Objetos
Herencia - Programación Orientada a ObjetosHerencia - Programación Orientada a Objetos
Herencia - Programación Orientada a ObjetosMario Villaseñor
 
Modelo E/R
Modelo E/RModelo E/R
Modelo E/Romarzon
 

La actualidad más candente (20)

Bases de datos deductivas
Bases de datos deductivas Bases de datos deductivas
Bases de datos deductivas
 
Grafos Y Digrafos
Grafos Y DigrafosGrafos Y Digrafos
Grafos Y Digrafos
 
PUNTEROS (APUNTADORES) EN C++
PUNTEROS (APUNTADORES) EN C++PUNTEROS (APUNTADORES) EN C++
PUNTEROS (APUNTADORES) EN C++
 
Programación 3: colas
Programación 3: colasProgramación 3: colas
Programación 3: colas
 
Teoria de Grafos. Conceptos básicos.
Teoria de Grafos. Conceptos básicos.Teoria de Grafos. Conceptos básicos.
Teoria de Grafos. Conceptos básicos.
 
Pilas como estructura de datos..
Pilas como estructura de datos..Pilas como estructura de datos..
Pilas como estructura de datos..
 
POO: Encapsulamiento, principio de ocultación, recolección de basura
POO: Encapsulamiento, principio de ocultación, recolección de basuraPOO: Encapsulamiento, principio de ocultación, recolección de basura
POO: Encapsulamiento, principio de ocultación, recolección de basura
 
Normalizacion boyce codd_4_fn
Normalizacion boyce codd_4_fnNormalizacion boyce codd_4_fn
Normalizacion boyce codd_4_fn
 
Componentes y Librerías - Tópicos avanzados de programación.
Componentes y Librerías - Tópicos avanzados de programación.Componentes y Librerías - Tópicos avanzados de programación.
Componentes y Librerías - Tópicos avanzados de programación.
 
6 Curso de POO en Java - clases y objetos
6  Curso de POO en Java - clases y objetos6  Curso de POO en Java - clases y objetos
6 Curso de POO en Java - clases y objetos
 
Pilas, colas, y listas estructura de datos
Pilas, colas, y listas estructura de datosPilas, colas, y listas estructura de datos
Pilas, colas, y listas estructura de datos
 
POO Unidad 4: Persistencia de objetos y manejo de archivos
POO Unidad 4: Persistencia de objetos y manejo de archivosPOO Unidad 4: Persistencia de objetos y manejo de archivos
POO Unidad 4: Persistencia de objetos y manejo de archivos
 
Clases y objetos en Java
Clases y objetos en JavaClases y objetos en Java
Clases y objetos en Java
 
Tipos De Datos Abstractos Colas
Tipos De Datos Abstractos ColasTipos De Datos Abstractos Colas
Tipos De Datos Abstractos Colas
 
Estructura Básica de PHP
Estructura Básica de PHPEstructura Básica de PHP
Estructura Básica de PHP
 
Algebra relacional
Algebra relacionalAlgebra relacional
Algebra relacional
 
Listas
ListasListas
Listas
 
Herencia - Programación Orientada a Objetos
Herencia - Programación Orientada a ObjetosHerencia - Programación Orientada a Objetos
Herencia - Programación Orientada a Objetos
 
Diagramas uml
Diagramas umlDiagramas uml
Diagramas uml
 
Modelo E/R
Modelo E/RModelo E/R
Modelo E/R
 

Destacado

RECURSIVIDAD C++
RECURSIVIDAD C++RECURSIVIDAD C++
RECURSIVIDAD C++Ing SC B
 
Metodos de conteo
Metodos de conteoMetodos de conteo
Metodos de conteoCarol Ramos
 
Metodos de conteo
Metodos de conteoMetodos de conteo
Metodos de conteomaurosc222
 
Duretti csp 29_06_2015
Duretti csp 29_06_2015Duretti csp 29_06_2015
Duretti csp 29_06_2015CSI Piemonte
 
Uces protege a-tu_familia
Uces protege a-tu_familiaUces protege a-tu_familia
Uces protege a-tu_familiainfoseguridad
 
My 4 legged runner and i
My 4 legged runner and iMy 4 legged runner and i
My 4 legged runner and ialinesimo
 
Digitalt likemannsarbeid og foreldre med funksjonshemmede barn
Digitalt likemannsarbeid og foreldre med funksjonshemmede barnDigitalt likemannsarbeid og foreldre med funksjonshemmede barn
Digitalt likemannsarbeid og foreldre med funksjonshemmede barnSonia Mu
 
Aus dem Ferienland
Aus dem FerienlandAus dem Ferienland
Aus dem FerienlandMSK
 
302 2146-3-pb
302 2146-3-pb302 2146-3-pb
302 2146-3-pbmosansar
 
Ml clase 1_redes_sociales
Ml clase 1_redes_socialesMl clase 1_redes_sociales
Ml clase 1_redes_socialesJohana Bazán
 
Joan Aleix Adria M
Joan Aleix Adria MJoan Aleix Adria M
Joan Aleix Adria Mdolors
 
BüroWARE Tools - Die ERP-Branchenlösung für Werkzeugfertigung, Nachschleifser...
BüroWARE Tools - Die ERP-Branchenlösung für Werkzeugfertigung, Nachschleifser...BüroWARE Tools - Die ERP-Branchenlösung für Werkzeugfertigung, Nachschleifser...
BüroWARE Tools - Die ERP-Branchenlösung für Werkzeugfertigung, Nachschleifser...softenginegmbh
 
Guia rápida hapiick
Guia rápida hapiickGuia rápida hapiick
Guia rápida hapiickhapiick
 
XNA And Silverlight
XNA And SilverlightXNA And Silverlight
XNA And SilverlightAaron King
 
Boletin interno marzo
Boletin interno marzoBoletin interno marzo
Boletin interno marzoSSMN
 
Tattify Nails Wraps Catalogue - Buy Custom Nail Stickers
Tattify Nails Wraps Catalogue - Buy Custom Nail Stickers Tattify Nails Wraps Catalogue - Buy Custom Nail Stickers
Tattify Nails Wraps Catalogue - Buy Custom Nail Stickers Tattify
 
Go Global FMS2010 Keynote
Go Global FMS2010 KeynoteGo Global FMS2010 Keynote
Go Global FMS2010 KeynoteGo Global
 
Confirmação matricula cfc atualizada
Confirmação matricula cfc   atualizadaConfirmação matricula cfc   atualizada
Confirmação matricula cfc atualizadaVicente Silva Filho
 

Destacado (20)

Recursividad en Java
Recursividad en JavaRecursividad en Java
Recursividad en Java
 
RECURSIVIDAD C++
RECURSIVIDAD C++RECURSIVIDAD C++
RECURSIVIDAD C++
 
Metodos de conteo
Metodos de conteoMetodos de conteo
Metodos de conteo
 
Metodos de conteo
Metodos de conteoMetodos de conteo
Metodos de conteo
 
Duretti csp 29_06_2015
Duretti csp 29_06_2015Duretti csp 29_06_2015
Duretti csp 29_06_2015
 
Uces protege a-tu_familia
Uces protege a-tu_familiaUces protege a-tu_familia
Uces protege a-tu_familia
 
My 4 legged runner and i
My 4 legged runner and iMy 4 legged runner and i
My 4 legged runner and i
 
Digitalt likemannsarbeid og foreldre med funksjonshemmede barn
Digitalt likemannsarbeid og foreldre med funksjonshemmede barnDigitalt likemannsarbeid og foreldre med funksjonshemmede barn
Digitalt likemannsarbeid og foreldre med funksjonshemmede barn
 
Aus dem Ferienland
Aus dem FerienlandAus dem Ferienland
Aus dem Ferienland
 
302 2146-3-pb
302 2146-3-pb302 2146-3-pb
302 2146-3-pb
 
Ml clase 1_redes_sociales
Ml clase 1_redes_socialesMl clase 1_redes_sociales
Ml clase 1_redes_sociales
 
Tutorial: Olesur
Tutorial: OlesurTutorial: Olesur
Tutorial: Olesur
 
Joan Aleix Adria M
Joan Aleix Adria MJoan Aleix Adria M
Joan Aleix Adria M
 
BüroWARE Tools - Die ERP-Branchenlösung für Werkzeugfertigung, Nachschleifser...
BüroWARE Tools - Die ERP-Branchenlösung für Werkzeugfertigung, Nachschleifser...BüroWARE Tools - Die ERP-Branchenlösung für Werkzeugfertigung, Nachschleifser...
BüroWARE Tools - Die ERP-Branchenlösung für Werkzeugfertigung, Nachschleifser...
 
Guia rápida hapiick
Guia rápida hapiickGuia rápida hapiick
Guia rápida hapiick
 
XNA And Silverlight
XNA And SilverlightXNA And Silverlight
XNA And Silverlight
 
Boletin interno marzo
Boletin interno marzoBoletin interno marzo
Boletin interno marzo
 
Tattify Nails Wraps Catalogue - Buy Custom Nail Stickers
Tattify Nails Wraps Catalogue - Buy Custom Nail Stickers Tattify Nails Wraps Catalogue - Buy Custom Nail Stickers
Tattify Nails Wraps Catalogue - Buy Custom Nail Stickers
 
Go Global FMS2010 Keynote
Go Global FMS2010 KeynoteGo Global FMS2010 Keynote
Go Global FMS2010 Keynote
 
Confirmação matricula cfc atualizada
Confirmação matricula cfc   atualizadaConfirmação matricula cfc   atualizada
Confirmação matricula cfc atualizada
 

Similar a Recursividad en POO - 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)
 
recursividad
recursividadrecursividad
recursividad
 
Recursividad directa e indirecta
Recursividad directa e indirectaRecursividad directa e indirecta
Recursividad directa e indirecta
 
SUBPROGRAMAS
SUBPROGRAMASSUBPROGRAMAS
SUBPROGRAMAS
 
La_Recursividad.pptx
La_Recursividad.pptxLa_Recursividad.pptx
La_Recursividad.pptx
 
Capítulo 3 Algoritmos recursivos.pdf
Capítulo 3 Algoritmos recursivos.pdfCapítulo 3 Algoritmos recursivos.pdf
Capítulo 3 Algoritmos recursivos.pdf
 
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
 
2. Recursividad
2. Recursividad2. Recursividad
2. Recursividad
 
Recursión
RecursiónRecursión
Recursión
 
Funciones recursivas en C++
Funciones recursivas en C++Funciones recursivas en C++
Funciones recursivas en C++
 
Recursividad2019
Recursividad2019Recursividad2019
Recursividad2019
 
sentenciareturnymetodos
sentenciareturnymetodossentenciareturnymetodos
sentenciareturnymetodos
 
03 tda1 t2018
03 tda1 t201803 tda1 t2018
03 tda1 t2018
 
Estructura de datos - Unidad 2: Recursividad
Estructura de datos - Unidad 2: Recursividad Estructura de datos - Unidad 2: Recursividad
Estructura de datos - Unidad 2: Recursividad
 
Recursividad 100329105433-phpapp01
Recursividad 100329105433-phpapp01Recursividad 100329105433-phpapp01
Recursividad 100329105433-phpapp01
 
Programación 1: modularización
Programación 1: modularizaciónProgramación 1: modularización
Programación 1: modularización
 
Unidad 2 diana karina pech may
Unidad 2 diana karina pech mayUnidad 2 diana karina pech may
Unidad 2 diana karina pech may
 

Más de Martin Pacheco Chávez

Tecnologías multitáctil (touch) - Linea del tiempo
Tecnologías multitáctil (touch) - Linea del tiempoTecnologías multitáctil (touch) - Linea del tiempo
Tecnologías multitáctil (touch) - Linea del tiempoMartin Pacheco Chávez
 
Diseño y normas en un centro de cómputo
Diseño y normas en un centro de cómputoDiseño y normas en un centro de cómputo
Diseño y normas en un centro de cómputoMartin Pacheco Chávez
 
Conclusiones de Unidad 1 - Sistemas Operativos.
Conclusiones de Unidad 1 - Sistemas Operativos.Conclusiones de Unidad 1 - Sistemas Operativos.
Conclusiones de Unidad 1 - Sistemas Operativos.Martin Pacheco Chávez
 
1.2 La función Informática como ventaja competitiva en las organizaciones
1.2 La función Informática como ventaja competitiva en las organizaciones1.2 La función Informática como ventaja competitiva en las organizaciones
1.2 La función Informática como ventaja competitiva en las organizacionesMartin Pacheco Chávez
 
Cuestionario de introducción al manejo de procesadores
Cuestionario de introducción al manejo de procesadoresCuestionario de introducción al manejo de procesadores
Cuestionario de introducción al manejo de procesadoresMartin Pacheco Chávez
 

Más de Martin Pacheco Chávez (9)

Qué es Joomla y cómo instalarlo
Qué es Joomla y cómo instalarloQué es Joomla y cómo instalarlo
Qué es Joomla y cómo instalarlo
 
Tecnologías multitáctil (touch) - Linea del tiempo
Tecnologías multitáctil (touch) - Linea del tiempoTecnologías multitáctil (touch) - Linea del tiempo
Tecnologías multitáctil (touch) - Linea del tiempo
 
Introducción a lenguaje Visual Basic
Introducción a lenguaje Visual BasicIntroducción a lenguaje Visual Basic
Introducción a lenguaje Visual Basic
 
Carreras en sistemas de informacion
Carreras en sistemas de informacionCarreras en sistemas de informacion
Carreras en sistemas de informacion
 
Diseño y normas en un centro de cómputo
Diseño y normas en un centro de cómputoDiseño y normas en un centro de cómputo
Diseño y normas en un centro de cómputo
 
Conclusiones de Unidad 1 - Sistemas Operativos.
Conclusiones de Unidad 1 - Sistemas Operativos.Conclusiones de Unidad 1 - Sistemas Operativos.
Conclusiones de Unidad 1 - Sistemas Operativos.
 
1.2 La función Informática como ventaja competitiva en las organizaciones
1.2 La función Informática como ventaja competitiva en las organizaciones1.2 La función Informática como ventaja competitiva en las organizaciones
1.2 La función Informática como ventaja competitiva en las organizaciones
 
Cuestionario de introducción al manejo de procesadores
Cuestionario de introducción al manejo de procesadoresCuestionario de introducción al manejo de procesadores
Cuestionario de introducción al manejo de procesadores
 
Método de Heapsort
Método de HeapsortMétodo de Heapsort
Método de Heapsort
 

Último

SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfSELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfAngélica Soledad Vega Ramírez
 
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.pptDE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.pptELENA GALLARDO PAÚLS
 
codigos HTML para blogs y paginas web Karina
codigos HTML para blogs y paginas web Karinacodigos HTML para blogs y paginas web Karina
codigos HTML para blogs y paginas web Karinavergarakarina022
 
Resolucion de Problemas en Educacion Inicial 5 años ED-2024 Ccesa007.pdf
Resolucion de Problemas en Educacion Inicial 5 años ED-2024 Ccesa007.pdfResolucion de Problemas en Educacion Inicial 5 años ED-2024 Ccesa007.pdf
Resolucion de Problemas en Educacion Inicial 5 años ED-2024 Ccesa007.pdfDemetrio Ccesa Rayme
 
GLOSAS Y PALABRAS ACTO 2 DE ABRIL 2024.docx
GLOSAS  Y PALABRAS ACTO 2 DE ABRIL 2024.docxGLOSAS  Y PALABRAS ACTO 2 DE ABRIL 2024.docx
GLOSAS Y PALABRAS ACTO 2 DE ABRIL 2024.docxAleParedes11
 
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARONARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFAROJosé Luis Palma
 
2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdf2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdfBaker Publishing Company
 
EXPECTATIVAS vs PERSPECTIVA en la vida.
EXPECTATIVAS vs PERSPECTIVA  en la vida.EXPECTATIVAS vs PERSPECTIVA  en la vida.
EXPECTATIVAS vs PERSPECTIVA en la vida.DaluiMonasterio
 
CALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADCALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADauxsoporte
 
cortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahuacortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahuaDANNYISAACCARVAJALGA
 
Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Lourdes Feria
 
Informatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos BásicosInformatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos BásicosCesarFernandez937857
 
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...JAVIER SOLIS NOYOLA
 
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIARAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIACarlos Campaña Montenegro
 

Último (20)

SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfSELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
 
Repaso Pruebas CRECE PR 2024. Ciencia General
Repaso Pruebas CRECE PR 2024. Ciencia GeneralRepaso Pruebas CRECE PR 2024. Ciencia General
Repaso Pruebas CRECE PR 2024. Ciencia General
 
La Trampa De La Felicidad. Russ-Harris.pdf
La Trampa De La Felicidad. Russ-Harris.pdfLa Trampa De La Felicidad. Russ-Harris.pdf
La Trampa De La Felicidad. Russ-Harris.pdf
 
Presentacion Metodología de Enseñanza Multigrado
Presentacion Metodología de Enseñanza MultigradoPresentacion Metodología de Enseñanza Multigrado
Presentacion Metodología de Enseñanza Multigrado
 
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.pptDE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
 
codigos HTML para blogs y paginas web Karina
codigos HTML para blogs y paginas web Karinacodigos HTML para blogs y paginas web Karina
codigos HTML para blogs y paginas web Karina
 
Defendamos la verdad. La defensa es importante.
Defendamos la verdad. La defensa es importante.Defendamos la verdad. La defensa es importante.
Defendamos la verdad. La defensa es importante.
 
Resolucion de Problemas en Educacion Inicial 5 años ED-2024 Ccesa007.pdf
Resolucion de Problemas en Educacion Inicial 5 años ED-2024 Ccesa007.pdfResolucion de Problemas en Educacion Inicial 5 años ED-2024 Ccesa007.pdf
Resolucion de Problemas en Educacion Inicial 5 años ED-2024 Ccesa007.pdf
 
GLOSAS Y PALABRAS ACTO 2 DE ABRIL 2024.docx
GLOSAS  Y PALABRAS ACTO 2 DE ABRIL 2024.docxGLOSAS  Y PALABRAS ACTO 2 DE ABRIL 2024.docx
GLOSAS Y PALABRAS ACTO 2 DE ABRIL 2024.docx
 
Sesión de clase: Defendamos la verdad.pdf
Sesión de clase: Defendamos la verdad.pdfSesión de clase: Defendamos la verdad.pdf
Sesión de clase: Defendamos la verdad.pdf
 
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARONARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
 
2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdf2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdf
 
EXPECTATIVAS vs PERSPECTIVA en la vida.
EXPECTATIVAS vs PERSPECTIVA  en la vida.EXPECTATIVAS vs PERSPECTIVA  en la vida.
EXPECTATIVAS vs PERSPECTIVA en la vida.
 
CALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADCALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDAD
 
cortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahuacortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahua
 
Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...
 
Power Point: "Defendamos la verdad".pptx
Power Point: "Defendamos la verdad".pptxPower Point: "Defendamos la verdad".pptx
Power Point: "Defendamos la verdad".pptx
 
Informatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos BásicosInformatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos Básicos
 
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
 
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIARAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
 

Recursividad en POO - 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 deDatos en Java- Luis Joyanes Aguilar.McGraw-Hilleditorial 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 programarenJava– Deitel,séptima edición.Pearsoneditorial. 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 deDatos - SilviaGuardati,tercera edición. McGraw-Hilleditorial 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