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

Distribución y fragmentación de datos
Distribución y fragmentación  de datosDistribución y fragmentación  de datos
Distribución y fragmentación de datosJosé Mendoza
 
Pilas como estructura de datos..
Pilas como estructura de datos..Pilas como estructura de datos..
Pilas como estructura de datos..NANO-06
 
Estructura de datos - Unidad 1: Introducción a las estructuras de datos
Estructura de datos - Unidad 1: Introducción a las estructuras de datosEstructura de datos - Unidad 1: Introducción a las estructuras de datos
Estructura de datos - Unidad 1: Introducción a las estructuras de datosJosé Antonio Sandoval Acosta
 
Método de ordenación por inserción directa
Método de ordenación por inserción directaMétodo de ordenación por inserción directa
Método de ordenación por inserción directatavo_3315_
 
Estructura de Datos: Recursividad
Estructura de Datos: RecursividadEstructura de Datos: Recursividad
Estructura de Datos: RecursividadYanahui Bc
 
Sistemas operativos procesos
Sistemas operativos procesosSistemas operativos procesos
Sistemas operativos procesossistoperativos
 
Memoria dinamica
Memoria dinamicaMemoria dinamica
Memoria dinamicagusolis93
 
Curso Java Resumen - Curso 2005-2006
Curso Java Resumen - Curso 2005-2006Curso Java Resumen - Curso 2005-2006
Curso Java Resumen - Curso 2005-2006Samuel Marrero
 
POO Unidad 2: Clases y objetos Ejercicio 1
POO Unidad 2: Clases y objetos Ejercicio 1POO Unidad 2: Clases y objetos Ejercicio 1
POO Unidad 2: Clases y objetos Ejercicio 1Fabiola Valerio Ramirez
 
Registros de la cpu
Registros de la cpuRegistros de la cpu
Registros de la cpujomapuga
 
CARACTERISTICAS DE LA ALU Y LA UC
CARACTERISTICAS DE LA ALU Y LA UCCARACTERISTICAS DE LA ALU Y LA UC
CARACTERISTICAS DE LA ALU Y LA UCltguevara
 

La actualidad más candente (20)

Listas doblemente enlazadas
Listas doblemente enlazadasListas doblemente enlazadas
Listas doblemente enlazadas
 
Recursividad directa e indirecta
Recursividad directa e indirectaRecursividad directa e indirecta
Recursividad directa e indirecta
 
Distribución y fragmentación de datos
Distribución y fragmentación  de datosDistribución y fragmentación  de datos
Distribución y fragmentación de datos
 
Pilas como estructura de datos..
Pilas como estructura de datos..Pilas como estructura de datos..
Pilas como estructura de datos..
 
Estructura de datos - Unidad 1: Introducción a las estructuras de datos
Estructura de datos - Unidad 1: Introducción a las estructuras de datosEstructura de datos - Unidad 1: Introducción a las estructuras de datos
Estructura de datos - Unidad 1: Introducción a las estructuras de datos
 
Hilos en java
Hilos en javaHilos en java
Hilos en java
 
Jtextarea
JtextareaJtextarea
Jtextarea
 
Metodos de ordenamiento
Metodos de ordenamientoMetodos de ordenamiento
Metodos de ordenamiento
 
Java Threads (Hilos en Java)
Java Threads (Hilos en Java)Java Threads (Hilos en Java)
Java Threads (Hilos en Java)
 
Método de ordenación por inserción directa
Método de ordenación por inserción directaMétodo de ordenación por inserción directa
Método de ordenación por inserción directa
 
Estructura de Datos: Recursividad
Estructura de Datos: RecursividadEstructura de Datos: Recursividad
Estructura de Datos: Recursividad
 
Sistemas operativos procesos
Sistemas operativos procesosSistemas operativos procesos
Sistemas operativos procesos
 
Memoria dinamica
Memoria dinamicaMemoria dinamica
Memoria dinamica
 
Curso Java Resumen - Curso 2005-2006
Curso Java Resumen - Curso 2005-2006Curso Java Resumen - Curso 2005-2006
Curso Java Resumen - Curso 2005-2006
 
POO Unidad 2: Clases y objetos Ejercicio 1
POO Unidad 2: Clases y objetos Ejercicio 1POO Unidad 2: Clases y objetos Ejercicio 1
POO Unidad 2: Clases y objetos Ejercicio 1
 
Registros de la cpu
Registros de la cpuRegistros de la cpu
Registros de la cpu
 
Modos de Direccionamiento
Modos de DireccionamientoModos de Direccionamiento
Modos de Direccionamiento
 
CARACTERISTICAS DE LA ALU Y LA UC
CARACTERISTICAS DE LA ALU Y LA UCCARACTERISTICAS DE LA ALU Y LA UC
CARACTERISTICAS DE LA ALU Y LA UC
 
Funciones recursivas
Funciones recursivasFunciones recursivas
Funciones recursivas
 
Manejo de memoria
Manejo de memoriaManejo de memoria
Manejo de memoria
 

Similar a Recursividad en Java (20)

Recursividad en POO - Java
Recursividad en POO - JavaRecursividad en POO - Java
Recursividad en POO - Java
 
Recursividad
RecursividadRecursividad
Recursividad
 
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
 
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 EN PROGRAMACION ORIENTADA .pptx
recursividad EN PROGRAMACION ORIENTADA .pptxrecursividad EN PROGRAMACION ORIENTADA .pptx
recursividad EN PROGRAMACION ORIENTADA .pptx
 
recursividad.pptx
recursividad.pptxrecursividad.pptx
recursividad.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
 

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

UNIDAD DE APRENDIZAJE MARZO 2024.docx para educacion
UNIDAD DE APRENDIZAJE MARZO 2024.docx para educacionUNIDAD DE APRENDIZAJE MARZO 2024.docx para educacion
UNIDAD DE APRENDIZAJE MARZO 2024.docx para educacionCarolVigo1
 
21 MARZO DIA INTERNACIONAL DOS BOSQUES.pdf
21 MARZO DIA INTERNACIONAL DOS BOSQUES.pdf21 MARZO DIA INTERNACIONAL DOS BOSQUES.pdf
21 MARZO DIA INTERNACIONAL DOS BOSQUES.pdfceeabarcia
 
Tema 4 Rocas sedimentarias, características y clasificación
Tema 4 Rocas sedimentarias, características y clasificaciónTema 4 Rocas sedimentarias, características y clasificación
Tema 4 Rocas sedimentarias, características y clasificaciónIES Vicent Andres Estelles
 
EL ECLIPSE DE LA PAZ (cuento literario). Autor y diseñador JAVIER SOLIS NOYOLA
EL ECLIPSE DE LA PAZ (cuento literario). Autor y diseñador JAVIER SOLIS NOYOLAEL ECLIPSE DE LA PAZ (cuento literario). Autor y diseñador JAVIER SOLIS NOYOLA
EL ECLIPSE DE LA PAZ (cuento literario). Autor y diseñador JAVIER SOLIS NOYOLAJAVIER SOLIS NOYOLA
 
Presentación contribuciones socioeconómicas del SUPV 2023
Presentación contribuciones socioeconómicas del SUPV 2023Presentación contribuciones socioeconómicas del SUPV 2023
Presentación contribuciones socioeconómicas del SUPV 2023Ivie
 
La poesía del encarcelamiento de Raúl Zurita en el aula: una propuesta didáctica
La poesía del encarcelamiento de Raúl Zurita en el aula: una propuesta didácticaLa poesía del encarcelamiento de Raúl Zurita en el aula: una propuesta didáctica
La poesía del encarcelamiento de Raúl Zurita en el aula: una propuesta didácticaIGNACIO BALLESTER PARDO
 
Ejemplo de trabajo de TIC´s CON VARIAS OPCIONES DE LAS TAREAS
Ejemplo de trabajo de TIC´s CON VARIAS OPCIONES DE LAS TAREASEjemplo de trabajo de TIC´s CON VARIAS OPCIONES DE LAS TAREAS
Ejemplo de trabajo de TIC´s CON VARIAS OPCIONES DE LAS TAREASJavier Sanchez
 
Recursos Tecnológicos, página AIP-CRT 2 0 2 4.pdf
Recursos Tecnológicos, página  AIP-CRT 2 0 2 4.pdfRecursos Tecnológicos, página  AIP-CRT 2 0 2 4.pdf
Recursos Tecnológicos, página AIP-CRT 2 0 2 4.pdfNELLYKATTY
 
Evaluacion Diagnostica Matematica 2do C2 Secundaria Ccesa007.pdf
Evaluacion Diagnostica Matematica 2do C2 Secundaria Ccesa007.pdfEvaluacion Diagnostica Matematica 2do C2 Secundaria Ccesa007.pdf
Evaluacion Diagnostica Matematica 2do C2 Secundaria Ccesa007.pdfDemetrio Ccesa Rayme
 
Tecnología educativa en la era actual .pptx
Tecnología educativa en la era actual .pptxTecnología educativa en la era actual .pptx
Tecnología educativa en la era actual .pptxJulioSantin2
 
Semana Santa en Popayán para el año 2024
Semana Santa en Popayán para el año 2024Semana Santa en Popayán para el año 2024
Semana Santa en Popayán para el año 2024yaco173
 
sociales ciencias segundo trimestre tercero
sociales ciencias segundo trimestre tercerosociales ciencias segundo trimestre tercero
sociales ciencias segundo trimestre terceroCEIP TIERRA DE PINARES
 
Los escritos administrativos, técnicos y comerciales
Los escritos administrativos, técnicos y comercialesLos escritos administrativos, técnicos y comerciales
Los escritos administrativos, técnicos y comercialeshanda210618
 
GALATAS Y ROMANOS EXAMEN PARA LOS ALUMNO
GALATAS Y ROMANOS EXAMEN PARA LOS ALUMNOGALATAS Y ROMANOS EXAMEN PARA LOS ALUMNO
GALATAS Y ROMANOS EXAMEN PARA LOS ALUMNOJoseAmaya49
 
Herbert James Drape. Erotismo y sensualidad.pptx
Herbert James Drape. Erotismo y sensualidad.pptxHerbert James Drape. Erotismo y sensualidad.pptx
Herbert James Drape. Erotismo y sensualidad.pptxArs Erótica
 
Organizaciones Sociales formales y no formales
Organizaciones Sociales formales y no formalesOrganizaciones Sociales formales y no formales
Organizaciones Sociales formales y no formalesUniversidad del Istmo
 
Concurso de Innovación Pedagógica T3 FONDEP 2024 Ccesa007.pdf
Concurso de Innovación Pedagógica  T3  FONDEP 2024 Ccesa007.pdfConcurso de Innovación Pedagógica  T3  FONDEP 2024 Ccesa007.pdf
Concurso de Innovación Pedagógica T3 FONDEP 2024 Ccesa007.pdfDemetrio Ccesa Rayme
 
Anna Llenas Serra. El monstruo de colores. Doctor de emociones.pdf
Anna Llenas Serra. El monstruo de colores. Doctor de emociones.pdfAnna Llenas Serra. El monstruo de colores. Doctor de emociones.pdf
Anna Llenas Serra. El monstruo de colores. Doctor de emociones.pdfSaraGabrielaPrezPonc
 
Concurso de Innovación Pedagógica T2 FONDEP 2024 Ccesa007.pdf
Concurso de Innovación Pedagógica  T2  FONDEP 2024 Ccesa007.pdfConcurso de Innovación Pedagógica  T2  FONDEP 2024 Ccesa007.pdf
Concurso de Innovación Pedagógica T2 FONDEP 2024 Ccesa007.pdfDemetrio Ccesa Rayme
 
PSICOLOGÍA. UNA INTRODUCCIÓN. ALCIRA ORSINI Y LETICIA BOSSELLINI 3.pdf
PSICOLOGÍA. UNA INTRODUCCIÓN. ALCIRA ORSINI Y LETICIA BOSSELLINI 3.pdfPSICOLOGÍA. UNA INTRODUCCIÓN. ALCIRA ORSINI Y LETICIA BOSSELLINI 3.pdf
PSICOLOGÍA. UNA INTRODUCCIÓN. ALCIRA ORSINI Y LETICIA BOSSELLINI 3.pdfCarlosAntonio456574
 

Último (20)

UNIDAD DE APRENDIZAJE MARZO 2024.docx para educacion
UNIDAD DE APRENDIZAJE MARZO 2024.docx para educacionUNIDAD DE APRENDIZAJE MARZO 2024.docx para educacion
UNIDAD DE APRENDIZAJE MARZO 2024.docx para educacion
 
21 MARZO DIA INTERNACIONAL DOS BOSQUES.pdf
21 MARZO DIA INTERNACIONAL DOS BOSQUES.pdf21 MARZO DIA INTERNACIONAL DOS BOSQUES.pdf
21 MARZO DIA INTERNACIONAL DOS BOSQUES.pdf
 
Tema 4 Rocas sedimentarias, características y clasificación
Tema 4 Rocas sedimentarias, características y clasificaciónTema 4 Rocas sedimentarias, características y clasificación
Tema 4 Rocas sedimentarias, características y clasificación
 
EL ECLIPSE DE LA PAZ (cuento literario). Autor y diseñador JAVIER SOLIS NOYOLA
EL ECLIPSE DE LA PAZ (cuento literario). Autor y diseñador JAVIER SOLIS NOYOLAEL ECLIPSE DE LA PAZ (cuento literario). Autor y diseñador JAVIER SOLIS NOYOLA
EL ECLIPSE DE LA PAZ (cuento literario). Autor y diseñador JAVIER SOLIS NOYOLA
 
Presentación contribuciones socioeconómicas del SUPV 2023
Presentación contribuciones socioeconómicas del SUPV 2023Presentación contribuciones socioeconómicas del SUPV 2023
Presentación contribuciones socioeconómicas del SUPV 2023
 
La poesía del encarcelamiento de Raúl Zurita en el aula: una propuesta didáctica
La poesía del encarcelamiento de Raúl Zurita en el aula: una propuesta didácticaLa poesía del encarcelamiento de Raúl Zurita en el aula: una propuesta didáctica
La poesía del encarcelamiento de Raúl Zurita en el aula: una propuesta didáctica
 
Ejemplo de trabajo de TIC´s CON VARIAS OPCIONES DE LAS TAREAS
Ejemplo de trabajo de TIC´s CON VARIAS OPCIONES DE LAS TAREASEjemplo de trabajo de TIC´s CON VARIAS OPCIONES DE LAS TAREAS
Ejemplo de trabajo de TIC´s CON VARIAS OPCIONES DE LAS TAREAS
 
Recursos Tecnológicos, página AIP-CRT 2 0 2 4.pdf
Recursos Tecnológicos, página  AIP-CRT 2 0 2 4.pdfRecursos Tecnológicos, página  AIP-CRT 2 0 2 4.pdf
Recursos Tecnológicos, página AIP-CRT 2 0 2 4.pdf
 
Evaluacion Diagnostica Matematica 2do C2 Secundaria Ccesa007.pdf
Evaluacion Diagnostica Matematica 2do C2 Secundaria Ccesa007.pdfEvaluacion Diagnostica Matematica 2do C2 Secundaria Ccesa007.pdf
Evaluacion Diagnostica Matematica 2do C2 Secundaria Ccesa007.pdf
 
Tecnología educativa en la era actual .pptx
Tecnología educativa en la era actual .pptxTecnología educativa en la era actual .pptx
Tecnología educativa en la era actual .pptx
 
Semana Santa en Popayán para el año 2024
Semana Santa en Popayán para el año 2024Semana Santa en Popayán para el año 2024
Semana Santa en Popayán para el año 2024
 
sociales ciencias segundo trimestre tercero
sociales ciencias segundo trimestre tercerosociales ciencias segundo trimestre tercero
sociales ciencias segundo trimestre tercero
 
Los escritos administrativos, técnicos y comerciales
Los escritos administrativos, técnicos y comercialesLos escritos administrativos, técnicos y comerciales
Los escritos administrativos, técnicos y comerciales
 
GALATAS Y ROMANOS EXAMEN PARA LOS ALUMNO
GALATAS Y ROMANOS EXAMEN PARA LOS ALUMNOGALATAS Y ROMANOS EXAMEN PARA LOS ALUMNO
GALATAS Y ROMANOS EXAMEN PARA LOS ALUMNO
 
Herbert James Drape. Erotismo y sensualidad.pptx
Herbert James Drape. Erotismo y sensualidad.pptxHerbert James Drape. Erotismo y sensualidad.pptx
Herbert James Drape. Erotismo y sensualidad.pptx
 
Organizaciones Sociales formales y no formales
Organizaciones Sociales formales y no formalesOrganizaciones Sociales formales y no formales
Organizaciones Sociales formales y no formales
 
Concurso de Innovación Pedagógica T3 FONDEP 2024 Ccesa007.pdf
Concurso de Innovación Pedagógica  T3  FONDEP 2024 Ccesa007.pdfConcurso de Innovación Pedagógica  T3  FONDEP 2024 Ccesa007.pdf
Concurso de Innovación Pedagógica T3 FONDEP 2024 Ccesa007.pdf
 
Anna Llenas Serra. El monstruo de colores. Doctor de emociones.pdf
Anna Llenas Serra. El monstruo de colores. Doctor de emociones.pdfAnna Llenas Serra. El monstruo de colores. Doctor de emociones.pdf
Anna Llenas Serra. El monstruo de colores. Doctor de emociones.pdf
 
Concurso de Innovación Pedagógica T2 FONDEP 2024 Ccesa007.pdf
Concurso de Innovación Pedagógica  T2  FONDEP 2024 Ccesa007.pdfConcurso de Innovación Pedagógica  T2  FONDEP 2024 Ccesa007.pdf
Concurso de Innovación Pedagógica T2 FONDEP 2024 Ccesa007.pdf
 
PSICOLOGÍA. UNA INTRODUCCIÓN. ALCIRA ORSINI Y LETICIA BOSSELLINI 3.pdf
PSICOLOGÍA. UNA INTRODUCCIÓN. ALCIRA ORSINI Y LETICIA BOSSELLINI 3.pdfPSICOLOGÍA. UNA INTRODUCCIÓN. ALCIRA ORSINI Y LETICIA BOSSELLINI 3.pdf
PSICOLOGÍA. UNA INTRODUCCIÓN. ALCIRA ORSINI Y LETICIA BOSSELLINI 3.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