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

Bucket sort
Bucket sortBucket sort
Bucket sorteislenp
 
Estructura de Datos - Unidad 4 Estructuras no lineales
Estructura de Datos - Unidad 4 Estructuras no linealesEstructura de Datos - Unidad 4 Estructuras no lineales
Estructura de Datos - Unidad 4 Estructuras no linealesJosé Antonio Sandoval Acosta
 
Colas en programacion
Colas en programacionColas en programacion
Colas en programacionLuis Igoodbad
 
Método de Búsqueda Hash
Método de Búsqueda HashMétodo de Búsqueda Hash
Método de Búsqueda HashBlanca Parra
 
Cuadro sinóptico estructuras de datos y su clasificación
Cuadro sinóptico   estructuras de datos y su clasificaciónCuadro sinóptico   estructuras de datos y su clasificación
Cuadro sinóptico estructuras de datos y su clasificaciónAlex Uhu Colli
 
conceptos de Punteros y Nodos
conceptos de Punteros y Nodosconceptos de Punteros y Nodos
conceptos de Punteros y NodosBoris Salleg
 
Unidad 2. modelo entidad relacion
Unidad 2. modelo entidad relacionUnidad 2. modelo entidad relacion
Unidad 2. modelo entidad relacionLuiS YmAY
 
Arboles mate discreta
Arboles mate discretaArboles mate discreta
Arboles mate discretaJunior Soto
 
Teoría De La Complejidad Algoritmica
Teoría De La Complejidad AlgoritmicaTeoría De La Complejidad Algoritmica
Teoría De La Complejidad AlgoritmicaRolf Pinto
 
Programación 3: árboles binarios y ordenados
Programación 3: árboles binarios y ordenadosProgramación 3: árboles binarios y ordenados
Programación 3: árboles binarios y ordenadosAngel Vázquez Patiño
 
Metodos de-ordenamiento
Metodos de-ordenamientoMetodos de-ordenamiento
Metodos de-ordenamientodeff000001
 
Notación infija postfija
Notación infija postfijaNotación infija postfija
Notación infija postfijaOmarzingm
 
1.3 uso de tipos de datos abstractos
1.3 uso de tipos de datos abstractos1.3 uso de tipos de datos abstractos
1.3 uso de tipos de datos abstractoserwin_alexander
 
Conceptos de POO (Programacion Orientada a Objetos)
Conceptos de POO (Programacion Orientada a Objetos)Conceptos de POO (Programacion Orientada a Objetos)
Conceptos de POO (Programacion Orientada a Objetos)Josue Lara Reyes
 
Estructura de Datos - Unidad 5 metodos de ordenamiento
Estructura de Datos - Unidad 5 metodos de ordenamientoEstructura de Datos - Unidad 5 metodos de ordenamiento
Estructura de Datos - Unidad 5 metodos de ordenamientoJosé Antonio Sandoval Acosta
 

La actualidad más candente (20)

Bucket sort
Bucket sortBucket sort
Bucket sort
 
Estructura de Datos - Unidad 4 Estructuras no lineales
Estructura de Datos - Unidad 4 Estructuras no linealesEstructura de Datos - Unidad 4 Estructuras no lineales
Estructura de Datos - Unidad 4 Estructuras no lineales
 
Colas en programacion
Colas en programacionColas en programacion
Colas en programacion
 
Método de Búsqueda Hash
Método de Búsqueda HashMétodo de Búsqueda Hash
Método de Búsqueda Hash
 
Cuadro sinóptico estructuras de datos y su clasificación
Cuadro sinóptico   estructuras de datos y su clasificaciónCuadro sinóptico   estructuras de datos y su clasificación
Cuadro sinóptico estructuras de datos y su clasificación
 
conceptos de Punteros y Nodos
conceptos de Punteros y Nodosconceptos de Punteros y Nodos
conceptos de Punteros y Nodos
 
Unidad 2. modelo entidad relacion
Unidad 2. modelo entidad relacionUnidad 2. modelo entidad relacion
Unidad 2. modelo entidad relacion
 
Arboles mate discreta
Arboles mate discretaArboles mate discreta
Arboles mate discreta
 
Teoría De La Complejidad Algoritmica
Teoría De La Complejidad AlgoritmicaTeoría De La Complejidad Algoritmica
Teoría De La Complejidad Algoritmica
 
Estructura datos pilas y colas
Estructura datos pilas y colasEstructura datos pilas y colas
Estructura datos pilas y colas
 
Programación 3: árboles binarios y ordenados
Programación 3: árboles binarios y ordenadosProgramación 3: árboles binarios y ordenados
Programación 3: árboles binarios y ordenados
 
Metodos de-ordenamiento
Metodos de-ordenamientoMetodos de-ordenamiento
Metodos de-ordenamiento
 
Grafos
GrafosGrafos
Grafos
 
Notación infija postfija
Notación infija postfijaNotación infija postfija
Notación infija postfija
 
Búsqueda secuencial y binaria
Búsqueda secuencial y binariaBúsqueda secuencial y binaria
Búsqueda secuencial y binaria
 
Algoritmos de Ordenamiento externo
Algoritmos de Ordenamiento externoAlgoritmos de Ordenamiento externo
Algoritmos de Ordenamiento externo
 
Ordenamiento parte 2
Ordenamiento parte 2Ordenamiento parte 2
Ordenamiento parte 2
 
1.3 uso de tipos de datos abstractos
1.3 uso de tipos de datos abstractos1.3 uso de tipos de datos abstractos
1.3 uso de tipos de datos abstractos
 
Conceptos de POO (Programacion Orientada a Objetos)
Conceptos de POO (Programacion Orientada a Objetos)Conceptos de POO (Programacion Orientada a Objetos)
Conceptos de POO (Programacion Orientada a Objetos)
 
Estructura de Datos - Unidad 5 metodos de ordenamiento
Estructura de Datos - Unidad 5 metodos de ordenamientoEstructura de Datos - Unidad 5 metodos de ordenamiento
Estructura de Datos - Unidad 5 metodos de ordenamiento
 

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
 
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
 
Algoritmos recursivos
Algoritmos recursivosAlgoritmos recursivos
Algoritmos recursivos
 

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

FICHA DE MONITOREO Y ACOMPAÑAMIENTO 2024 MINEDU
FICHA DE MONITOREO Y ACOMPAÑAMIENTO  2024 MINEDUFICHA DE MONITOREO Y ACOMPAÑAMIENTO  2024 MINEDU
FICHA DE MONITOREO Y ACOMPAÑAMIENTO 2024 MINEDUgustavorojas179704
 
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Carlos Muñoz
 
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
 
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
 
LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...
LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...
LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...JAVIER SOLIS NOYOLA
 
Introducción:Los objetivos de Desarrollo Sostenible
Introducción:Los objetivos de Desarrollo SostenibleIntroducción:Los objetivos de Desarrollo Sostenible
Introducción:Los objetivos de Desarrollo SostenibleJonathanCovena1
 
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
 
Plan Año Escolar Año Escolar 2023-2024. MPPE
Plan Año Escolar Año Escolar 2023-2024. MPPEPlan Año Escolar Año Escolar 2023-2024. MPPE
Plan Año Escolar Año Escolar 2023-2024. MPPELaura Chacón
 
Informatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos BásicosInformatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos BásicosCesarFernandez937857
 
Procesos Didácticos en Educación Inicial .pptx
Procesos Didácticos en Educación Inicial .pptxProcesos Didácticos en Educación Inicial .pptx
Procesos Didácticos en Educación Inicial .pptxMapyMerma1
 
Marketing y servicios 2ºBTP Cocina DGETP
Marketing y servicios 2ºBTP Cocina DGETPMarketing y servicios 2ºBTP Cocina DGETP
Marketing y servicios 2ºBTP Cocina DGETPANEP - DETP
 
CULTURA NAZCA, presentación en aula para compartir
CULTURA NAZCA, presentación en aula para compartirCULTURA NAZCA, presentación en aula para compartir
CULTURA NAZCA, presentación en aula para compartirPaddySydney1
 
Identificación de componentes Hardware del PC
Identificación de componentes Hardware del PCIdentificación de componentes Hardware del PC
Identificación de componentes Hardware del PCCesarFernandez937857
 
BROCHURE EXCEL 2024 FII.pdfwrfertetwetewtewtwtwtwtwtwtwtewtewtewtwtwtwtwe
BROCHURE EXCEL 2024 FII.pdfwrfertetwetewtewtwtwtwtwtwtwtewtewtewtwtwtwtweBROCHURE EXCEL 2024 FII.pdfwrfertetwetewtewtwtwtwtwtwtwtewtewtewtwtwtwtwe
BROCHURE EXCEL 2024 FII.pdfwrfertetwetewtewtwtwtwtwtwtwtewtewtewtwtwtwtwealekzHuri
 
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptxSINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptxlclcarmen
 
plan-de-trabajo-colegiado en una institucion educativa
plan-de-trabajo-colegiado en una institucion educativaplan-de-trabajo-colegiado en una institucion educativa
plan-de-trabajo-colegiado en una institucion educativafiorelachuctaya2
 

Último (20)

FICHA DE MONITOREO Y ACOMPAÑAMIENTO 2024 MINEDU
FICHA DE MONITOREO Y ACOMPAÑAMIENTO  2024 MINEDUFICHA DE MONITOREO Y ACOMPAÑAMIENTO  2024 MINEDU
FICHA DE MONITOREO Y ACOMPAÑAMIENTO 2024 MINEDU
 
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
 
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.
 
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
 
LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...
LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...
LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...
 
Introducción:Los objetivos de Desarrollo Sostenible
Introducción:Los objetivos de Desarrollo SostenibleIntroducción:Los objetivos de Desarrollo Sostenible
Introducción:Los objetivos de Desarrollo Sostenible
 
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
 
Plan Año Escolar Año Escolar 2023-2024. MPPE
Plan Año Escolar Año Escolar 2023-2024. MPPEPlan Año Escolar Año Escolar 2023-2024. MPPE
Plan Año Escolar Año Escolar 2023-2024. MPPE
 
Informatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos BásicosInformatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos Básicos
 
Procesos Didácticos en Educación Inicial .pptx
Procesos Didácticos en Educación Inicial .pptxProcesos Didácticos en Educación Inicial .pptx
Procesos Didácticos en Educación Inicial .pptx
 
Marketing y servicios 2ºBTP Cocina DGETP
Marketing y servicios 2ºBTP Cocina DGETPMarketing y servicios 2ºBTP Cocina DGETP
Marketing y servicios 2ºBTP Cocina DGETP
 
CULTURA NAZCA, presentación en aula para compartir
CULTURA NAZCA, presentación en aula para compartirCULTURA NAZCA, presentación en aula para compartir
CULTURA NAZCA, presentación en aula para compartir
 
Identificación de componentes Hardware del PC
Identificación de componentes Hardware del PCIdentificación de componentes Hardware del PC
Identificación de componentes Hardware del PC
 
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
 
Unidad 4 | Teorías de las Comunicación | MCDI
Unidad 4 | Teorías de las Comunicación | MCDIUnidad 4 | Teorías de las Comunicación | MCDI
Unidad 4 | Teorías de las Comunicación | MCDI
 
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
 
BROCHURE EXCEL 2024 FII.pdfwrfertetwetewtewtwtwtwtwtwtwtewtewtewtwtwtwtwe
BROCHURE EXCEL 2024 FII.pdfwrfertetwetewtewtwtwtwtwtwtwtewtewtewtwtwtwtweBROCHURE EXCEL 2024 FII.pdfwrfertetwetewtewtwtwtwtwtwtwtewtewtewtwtwtwtwe
BROCHURE EXCEL 2024 FII.pdfwrfertetwetewtewtwtwtwtwtwtwtewtewtewtwtwtwtwe
 
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptxSINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
 
plan-de-trabajo-colegiado en una institucion educativa
plan-de-trabajo-colegiado en una institucion educativaplan-de-trabajo-colegiado en una institucion educativa
plan-de-trabajo-colegiado en una institucion educativa
 

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