SlideShare une entreprise Scribd logo
1  sur  34
Estructura de Datos
                                                     2. Recursividad.
        http://www.informatik.uni-trier.de/~naeher/Professur/




                                                                  S
Contenido


2.1. Definición

2.2. Procedimientos recursivos

2.3. Ejemplos de casos




                                 U2. Recursividad.
http://codificando-sin-control.blogspot.com/2010/06/la-recursividad.html




                                       2. Recursividad
                                                                                       S
                                                                           U2. Recursividad.
2.1. Definición


  Alternativa diferente para implementar estructuras de
 repetición (ciclos). Se apoya en la modularidad, pues a
  través de los módulos se hacen llamadas recursivas.

      Un módulo es recursivo si, como parte de su
  definición, incluye al menos una llamada a sí mismo

           (Martínez, R. & Quiroga, E., 2001)


                                                 U2. Recursividad.
2.1. Definición (cont.)


 A recursive definition is one that refers to the object it is
             defining as part of its definition.

   “A bouquet of roses one rose, or two roses, or three
                        roses, …”

                     (Decker, H., 1993)



                                                      U2. Recursividad.
2.1. Definición (cont.)


  Un método recursivo es un método que se llama así
  mismo, ya sea directa o indirectamente, a través de
                     otro método.

           (Deitel, H. M. & Deitel P. J., 2004)

  Un método parcialmente definido en términos de sí
  mismo, ya sea directa o indirectamente, a través de
                     otro método.

                     (Weiss, M. A)
                                                  U2. Recursividad.
2.1. Definición (cont.)


                 SI



            NO




                          U2. Recursividad.
2.2. Procedimientos
Recursivos

 S TIPOS:
   S Recursión simple
   S Recursión múltiple
   S Recursión cruzada o indirecta
   S Recursión anidada




                                     U2. Recursividad.
2.3. Ejemplo de Casos


 S FACTORIAL
  S ¿Cómo se calcula el factorial de un número?


  S Ejemplo:
    S   0!, 1!, 2!, 3!, 4!, 5!




                                                  U2. Recursividad.
2.3. Ejemplo de Casos


S Factorial (forma
   iterativa)
-- Caso Base
   factorial = 1;
                                     SI
-- Parte Recursiva
      for (int i =n; i >= 1; i --)
         factorial *= i;



                                          U2. Recursividad.
2.3. Ejemplo de Casos


S Factorial (forma
  recursiva)
  int factorial (int n){                     SI
        if (n <= 1)
          return 1;                     NO
        else
          return (n * factorial ( n-1
  ));
  }


                                                  U2. Recursividad.
Ejercicio


 S Encuentre el error en el siguiente método recursivo
   y explique cómo corregirlo:

   public int suma(int n)
   {
        if (n == 0)
                 return 0;
        else
                 return n + suma (n);
   }


                                                 U2. Recursividad.
2.3. Ejemplo de Casos




                        U2. Recursividad.
2.3. Ejemplo de Casos




                        U2. Recursividad.
2.3. Ejemplo de Casos




                        U2. Recursividad.
2.3. Ejemplo de Casos




                        U2. Recursividad.
2.3. Ejemplo de Casos




                        U2. Recursividad.
2.3. Ejemplo de Casos




                        U2. Recursividad.
U2. Recursividad.
2.3. Ejemplos de casos


 S FIBONACCI (Leonardo de Pisa)
   S ¿Cómo se calcula la serie Fibonacci?




                                            U2. Recursividad.
2.3. Ejemplos de casos


 S FIBONACCI (Leonardo de Pisa)
   S ¿Cómo se calcula la serie Fibonacci?
     S   Condiciones:
         S Fibonacci (0) = 0                            n=0
         S Fibonacci (1) = 1                            n=1
         S Fibonacci (n) = Fibonacci(n-1)+Fibonacci(n-2) n>1




                                                          U2. Recursividad.
2.3. Ejemplo de Casos




                        U2. Recursividad.
2.3. Ejemplo de Casos



              +



       +            +


   +




                        U2. Recursividad.
2.3. Ejemplos de casos
Triángulo de Pascal




                         1
                         11
                        121
                       1331
                      14641
                         …




                              U2. Recursividad.
2.3. Ejemplos de casos


 TRIÁNGULO DE PASCAL

 int comb(int n, int m)
 {
        if ((n == 0) || (n == m))
                 return 1;
         else
                 return comb(n-1,m-1) + comb(n-1,m);
 }

                                                       U2. Recursividad.
Práctica (Equipo)


 S De los siguientes problemas resueltos de forma
   iterativa, encontrar su solución recursiva mediante
   codificación:
   1.   Fibonacci (n-1) + (n-2)
   2.   Conversión de un número decimal a binario (n/2, n%2)
   3.   Potencia (base, exponente)




                                                        U2. Recursividad.
Práctica (Equipo)
Fibonacci




    int Fibonacci (int n){
           //Casos Base
           if (n == 0)
                     return 0;
           else{
                     if (n == 1)
                               return 1;
           // Paso recursivo
                     else{
                               return Fibonacci(n-1)+Fibonacci(n-2);
                     }
           }
    }
                                                                       U2. Recursividad.
Práctica (Equipo)
Conversión Decimal a Binario




    void aBinario (int n){
         // Paso recursivo
         if (n >= 2)
                  aBinario (n/2);
         System.out.print(n%2);
    }




                                    U2. Recursividad.
Práctica (Equipo)
Elevar a una potencia




     int Potencia (int n, int exp){
           //Casos Base
           if (exp == 0)
                     return 1;
           else{
                     if (exp == 1)
                                return n;
           // Paso recursivo
                     else{
                                return n * Potencia(n, exp-1);
                     }
           }
     }
                                                                 U2. Recursividad.
Recursividad & Iteración

RECURSIVIDAD                     ITERACIÓN
S Llamadas repetidas a los       S Instrucción de repetición
  métodos.                          explícita.
S Termina cuando se reconoce unS Termina cuando falla la
  caso base.                        condición.
S Se aproxima poco a poco a la   S Repetición controlada por
  terminación.                      contador.
S Infinita cuando no reduce el   S Infinita cuando la condición
  problema.                         nunca se vuelve falsa.
S Sobrecarga de llamadas a
  métodos.
                                                        U2. Recursividad.
Ventajas


 S Menos líneas de código.

 S Refleja el problema con más naturalidad.

 S Produce un programa más fácil de entender y depurar.




                                                          U2. Recursividad.
Desventajas


S Tiempo de procesador.

S Espacio en memoria, consume memoria adicional.




                                               U2. Recursividad.
Referencias


1.   Martínez, R. & Quiroga, E. (2001). Estructura de datos.
     Referencia práctica con orientación a objetos. Thomson
     Learning.

2.   Decker, H. (1993). Working Classes. Data Structures and
     algorithms using C++. PWS Publishing Company.

3.   Deitel, H. M. & Deitel P. J. (2004). Cómo programar en JAVA
     5ª Edición. Pearson Hall.

4.   Weiss, M. A. Estructura de datos en Java. Ed. Addison
     Wesley.
                                                             U2. Recursividad.
¡ Gracias por su atención !



                               www.tecmartinez.edu.mx

                       Tel y Fax: (232) 3.73.52.40 . CP 93600

Miguel Hidalgo # 101, Col. Adolfo Ruiz Cortínez . Martínez de la Torre, Veracruz, México.

                                           34

Contenu connexe

Tendances

Memoria Estatica
Memoria EstaticaMemoria Estatica
Memoria EstaticaJ M
 
Recursividad
RecursividadRecursividad
Recursividadbetzy
 
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
 
Método de ordenamiento por selección (selection sort
Método de ordenamiento por selección (selection sortMétodo de ordenamiento por selección (selection sort
Método de ordenamiento por selección (selection sortlinkinpark03
 
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
 
1.4 software numerico
1.4 software numerico1.4 software numerico
1.4 software numericomorenito9001
 
Estructura de Datos Unidad - V: Métodos de Ordenamiento
Estructura de Datos Unidad - V: Métodos de OrdenamientoEstructura de Datos Unidad - V: Métodos de Ordenamiento
Estructura de Datos Unidad - V: Métodos de OrdenamientoJosé Antonio Sandoval Acosta
 
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
 
Planificación por prioridad
Planificación por prioridadPlanificación por prioridad
Planificación por prioridadGarNav
 

Tendances (20)

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
 
Algebra relacional
Algebra relacionalAlgebra relacional
Algebra relacional
 
Estrategias de busqueda
Estrategias de busquedaEstrategias de busqueda
Estrategias de busqueda
 
Memoria Estatica
Memoria EstaticaMemoria Estatica
Memoria Estatica
 
Recursividad
RecursividadRecursividad
Recursividad
 
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.
 
Algoritmos de Ordenamiento externo
Algoritmos de Ordenamiento externoAlgoritmos de Ordenamiento externo
Algoritmos de Ordenamiento externo
 
Estructura de Datos - Unidad 6 Metodos de busqueda
Estructura de Datos - Unidad 6 Metodos de busquedaEstructura de Datos - Unidad 6 Metodos de busqueda
Estructura de Datos - Unidad 6 Metodos de busqueda
 
Recursividad
RecursividadRecursividad
Recursividad
 
Divide y Venceras
Divide y VencerasDivide y Venceras
Divide y Venceras
 
Método de ordenamiento por selección (selection sort
Método de ordenamiento por selección (selection sortMétodo de ordenamiento por selección (selection sort
Método de ordenamiento por selección (selection sort
 
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
 
Programación 3: colas
Programación 3: colasProgramación 3: colas
Programación 3: colas
 
1.4 software numerico
1.4 software numerico1.4 software numerico
1.4 software numerico
 
Listas,pilas y colas Estructura de Datos
Listas,pilas y colas Estructura de DatosListas,pilas y colas Estructura de Datos
Listas,pilas y colas Estructura de Datos
 
Estructura de Datos Unidad - V: Métodos de Ordenamiento
Estructura de Datos Unidad - V: Métodos de OrdenamientoEstructura de Datos Unidad - V: Métodos de Ordenamiento
Estructura de Datos Unidad - V: Métodos de Ordenamiento
 
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
ColasColas
Colas
 
Planificación por prioridad
Planificación por prioridadPlanificación por prioridad
Planificación por prioridad
 
Diseño caso de pruebas
Diseño caso de pruebasDiseño caso de pruebas
Diseño caso de pruebas
 

Similaire à Estructura de Datos: Recursividad

Similaire à Estructura de Datos: Recursividad (7)

02.-recursividad.pptx
02.-recursividad.pptx02.-recursividad.pptx
02.-recursividad.pptx
 
Recursividad
RecursividadRecursividad
Recursividad
 
Unidad 2 recursividad
Unidad 2 recursividadUnidad 2 recursividad
Unidad 2 recursividad
 
Funciones recursivas
Funciones recursivasFunciones recursivas
Funciones recursivas
 
Metodologia de la programacion recursividad
Metodologia de la programacion   recursividadMetodologia de la programacion   recursividad
Metodologia de la programacion recursividad
 
Recursividad
RecursividadRecursividad
Recursividad
 
Cap1.1 recursividad
Cap1.1 recursividadCap1.1 recursividad
Cap1.1 recursividad
 

Plus de Yanahui Bc

Ambientes de aprendizaje
Ambientes de aprendizajeAmbientes de aprendizaje
Ambientes de aprendizajeYanahui Bc
 
1.1. clasificación de los número reales
1.1.  clasificación de los número reales1.1.  clasificación de los número reales
1.1. clasificación de los número realesYanahui Bc
 
Problemario u1
Problemario u1Problemario u1
Problemario u1Yanahui Bc
 
U1 cálculo diferencial
U1 cálculo diferencialU1 cálculo diferencial
U1 cálculo diferencialYanahui Bc
 
Algoritmos de ordeamiento
Algoritmos de ordeamientoAlgoritmos de ordeamiento
Algoritmos de ordeamientoYanahui Bc
 

Plus de Yanahui Bc (6)

Capitulo3
Capitulo3Capitulo3
Capitulo3
 
Ambientes de aprendizaje
Ambientes de aprendizajeAmbientes de aprendizaje
Ambientes de aprendizaje
 
1.1. clasificación de los número reales
1.1.  clasificación de los número reales1.1.  clasificación de los número reales
1.1. clasificación de los número reales
 
Problemario u1
Problemario u1Problemario u1
Problemario u1
 
U1 cálculo diferencial
U1 cálculo diferencialU1 cálculo diferencial
U1 cálculo diferencial
 
Algoritmos de ordeamiento
Algoritmos de ordeamientoAlgoritmos de ordeamiento
Algoritmos de ordeamiento
 

Dernier

Feliz Día de la Madre - 5 de Mayo, 2024.pdf
Feliz Día de la Madre - 5 de Mayo, 2024.pdfFeliz Día de la Madre - 5 de Mayo, 2024.pdf
Feliz Día de la Madre - 5 de Mayo, 2024.pdfMercedes Gonzalez
 
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESOPrueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESOluismii249
 
Tema 19. Inmunología y el sistema inmunitario 2024
Tema 19. Inmunología y el sistema inmunitario 2024Tema 19. Inmunología y el sistema inmunitario 2024
Tema 19. Inmunología y el sistema inmunitario 2024IES Vicent Andres Estelles
 
FUERZA Y MOVIMIENTO ciencias cuarto basico.ppt
FUERZA Y MOVIMIENTO ciencias cuarto basico.pptFUERZA Y MOVIMIENTO ciencias cuarto basico.ppt
FUERZA Y MOVIMIENTO ciencias cuarto basico.pptNancyMoreiraMora1
 
SESION DE PERSONAL SOCIAL. La convivencia en familia 22-04-24 -.doc
SESION DE PERSONAL SOCIAL.  La convivencia en familia 22-04-24  -.docSESION DE PERSONAL SOCIAL.  La convivencia en familia 22-04-24  -.doc
SESION DE PERSONAL SOCIAL. La convivencia en familia 22-04-24 -.docRodneyFrankCUADROSMI
 
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...jlorentemartos
 
Concepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptxConcepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptxFernando Solis
 
La Sostenibilidad Corporativa. Administración Ambiental
La Sostenibilidad Corporativa. Administración AmbientalLa Sostenibilidad Corporativa. Administración Ambiental
La Sostenibilidad Corporativa. Administración AmbientalJonathanCovena1
 
Plan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdf
Plan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdfPlan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdf
Plan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdfcarolinamartinezsev
 
Los avatares para el juego dramático en entornos virtuales
Los avatares para el juego dramático en entornos virtualesLos avatares para el juego dramático en entornos virtuales
Los avatares para el juego dramático en entornos virtualesMarisolMartinez707897
 
TALLER DE DEMOCRACIA Y GOBIERNO ESCOLAR-COMPETENCIAS N°3.docx
TALLER DE DEMOCRACIA Y GOBIERNO ESCOLAR-COMPETENCIAS N°3.docxTALLER DE DEMOCRACIA Y GOBIERNO ESCOLAR-COMPETENCIAS N°3.docx
TALLER DE DEMOCRACIA Y GOBIERNO ESCOLAR-COMPETENCIAS N°3.docxNadiaMartnez11
 
6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primariaWilian24
 
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICABIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICAÁngel Encinas
 
Biografía de Charles Coulomb física .pdf
Biografía de Charles Coulomb física .pdfBiografía de Charles Coulomb física .pdf
Biografía de Charles Coulomb física .pdfGruberACaraballo
 

Dernier (20)

Feliz Día de la Madre - 5 de Mayo, 2024.pdf
Feliz Día de la Madre - 5 de Mayo, 2024.pdfFeliz Día de la Madre - 5 de Mayo, 2024.pdf
Feliz Día de la Madre - 5 de Mayo, 2024.pdf
 
Sesión de clase APC: Los dos testigos.pdf
Sesión de clase APC: Los dos testigos.pdfSesión de clase APC: Los dos testigos.pdf
Sesión de clase APC: Los dos testigos.pdf
 
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESOPrueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
 
Tema 19. Inmunología y el sistema inmunitario 2024
Tema 19. Inmunología y el sistema inmunitario 2024Tema 19. Inmunología y el sistema inmunitario 2024
Tema 19. Inmunología y el sistema inmunitario 2024
 
FUERZA Y MOVIMIENTO ciencias cuarto basico.ppt
FUERZA Y MOVIMIENTO ciencias cuarto basico.pptFUERZA Y MOVIMIENTO ciencias cuarto basico.ppt
FUERZA Y MOVIMIENTO ciencias cuarto basico.ppt
 
SESION DE PERSONAL SOCIAL. La convivencia en familia 22-04-24 -.doc
SESION DE PERSONAL SOCIAL.  La convivencia en familia 22-04-24  -.docSESION DE PERSONAL SOCIAL.  La convivencia en familia 22-04-24  -.doc
SESION DE PERSONAL SOCIAL. La convivencia en familia 22-04-24 -.doc
 
Sesión de clase: Fe contra todo pronóstico
Sesión de clase: Fe contra todo pronósticoSesión de clase: Fe contra todo pronóstico
Sesión de clase: Fe contra todo pronóstico
 
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
 
Concepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptxConcepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptx
 
La Sostenibilidad Corporativa. Administración Ambiental
La Sostenibilidad Corporativa. Administración AmbientalLa Sostenibilidad Corporativa. Administración Ambiental
La Sostenibilidad Corporativa. Administración Ambiental
 
Supuestos_prácticos_funciones.docx
Supuestos_prácticos_funciones.docxSupuestos_prácticos_funciones.docx
Supuestos_prácticos_funciones.docx
 
Plan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdf
Plan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdfPlan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdf
Plan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdf
 
Interpretación de cortes geológicos 2024
Interpretación de cortes geológicos 2024Interpretación de cortes geológicos 2024
Interpretación de cortes geológicos 2024
 
Los avatares para el juego dramático en entornos virtuales
Los avatares para el juego dramático en entornos virtualesLos avatares para el juego dramático en entornos virtuales
Los avatares para el juego dramático en entornos virtuales
 
TALLER DE DEMOCRACIA Y GOBIERNO ESCOLAR-COMPETENCIAS N°3.docx
TALLER DE DEMOCRACIA Y GOBIERNO ESCOLAR-COMPETENCIAS N°3.docxTALLER DE DEMOCRACIA Y GOBIERNO ESCOLAR-COMPETENCIAS N°3.docx
TALLER DE DEMOCRACIA Y GOBIERNO ESCOLAR-COMPETENCIAS N°3.docx
 
Power Point: Fe contra todo pronóstico.pptx
Power Point: Fe contra todo pronóstico.pptxPower Point: Fe contra todo pronóstico.pptx
Power Point: Fe contra todo pronóstico.pptx
 
6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria
 
Power Point E. S.: Los dos testigos.pptx
Power Point E. S.: Los dos testigos.pptxPower Point E. S.: Los dos testigos.pptx
Power Point E. S.: Los dos testigos.pptx
 
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICABIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
 
Biografía de Charles Coulomb física .pdf
Biografía de Charles Coulomb física .pdfBiografía de Charles Coulomb física .pdf
Biografía de Charles Coulomb física .pdf
 

Estructura de Datos: Recursividad

  • 1. Estructura de Datos 2. Recursividad. http://www.informatik.uni-trier.de/~naeher/Professur/ S
  • 2. Contenido 2.1. Definición 2.2. Procedimientos recursivos 2.3. Ejemplos de casos U2. Recursividad.
  • 4. 2.1. Definición Alternativa diferente para implementar estructuras de repetición (ciclos). Se apoya en la modularidad, pues a través de los módulos se hacen llamadas recursivas. Un módulo es recursivo si, como parte de su definición, incluye al menos una llamada a sí mismo (Martínez, R. & Quiroga, E., 2001) U2. Recursividad.
  • 5. 2.1. Definición (cont.) A recursive definition is one that refers to the object it is defining as part of its definition. “A bouquet of roses one rose, or two roses, or three roses, …” (Decker, H., 1993) U2. Recursividad.
  • 6. 2.1. Definición (cont.) Un método recursivo es un método que se llama así mismo, ya sea directa o indirectamente, a través de otro método. (Deitel, H. M. & Deitel P. J., 2004) Un método parcialmente definido en términos de sí mismo, ya sea directa o indirectamente, a través de otro método. (Weiss, M. A) U2. Recursividad.
  • 7. 2.1. Definición (cont.) SI NO U2. Recursividad.
  • 8. 2.2. Procedimientos Recursivos S TIPOS: S Recursión simple S Recursión múltiple S Recursión cruzada o indirecta S Recursión anidada U2. Recursividad.
  • 9. 2.3. Ejemplo de Casos S FACTORIAL S ¿Cómo se calcula el factorial de un número? S Ejemplo: S 0!, 1!, 2!, 3!, 4!, 5! U2. Recursividad.
  • 10. 2.3. Ejemplo de Casos S Factorial (forma iterativa) -- Caso Base factorial = 1; SI -- Parte Recursiva for (int i =n; i >= 1; i --) factorial *= i; U2. Recursividad.
  • 11. 2.3. Ejemplo de Casos S Factorial (forma recursiva) int factorial (int n){ SI if (n <= 1) return 1; NO else return (n * factorial ( n-1 )); } U2. Recursividad.
  • 12. Ejercicio S Encuentre el error en el siguiente método recursivo y explique cómo corregirlo: public int suma(int n) { if (n == 0) return 0; else return n + suma (n); } U2. Recursividad.
  • 13. 2.3. Ejemplo de Casos U2. Recursividad.
  • 14. 2.3. Ejemplo de Casos U2. Recursividad.
  • 15. 2.3. Ejemplo de Casos U2. Recursividad.
  • 16. 2.3. Ejemplo de Casos U2. Recursividad.
  • 17. 2.3. Ejemplo de Casos U2. Recursividad.
  • 18. 2.3. Ejemplo de Casos U2. Recursividad.
  • 20. 2.3. Ejemplos de casos S FIBONACCI (Leonardo de Pisa) S ¿Cómo se calcula la serie Fibonacci? U2. Recursividad.
  • 21. 2.3. Ejemplos de casos S FIBONACCI (Leonardo de Pisa) S ¿Cómo se calcula la serie Fibonacci? S Condiciones: S Fibonacci (0) = 0 n=0 S Fibonacci (1) = 1 n=1 S Fibonacci (n) = Fibonacci(n-1)+Fibonacci(n-2) n>1 U2. Recursividad.
  • 22. 2.3. Ejemplo de Casos U2. Recursividad.
  • 23. 2.3. Ejemplo de Casos + + + + U2. Recursividad.
  • 24. 2.3. Ejemplos de casos Triángulo de Pascal 1 11 121 1331 14641 … U2. Recursividad.
  • 25. 2.3. Ejemplos de casos TRIÁNGULO DE PASCAL int comb(int n, int m) { if ((n == 0) || (n == m)) return 1; else return comb(n-1,m-1) + comb(n-1,m); } U2. Recursividad.
  • 26. Práctica (Equipo) S De los siguientes problemas resueltos de forma iterativa, encontrar su solución recursiva mediante codificación: 1. Fibonacci (n-1) + (n-2) 2. Conversión de un número decimal a binario (n/2, n%2) 3. Potencia (base, exponente) U2. Recursividad.
  • 27. Práctica (Equipo) Fibonacci int Fibonacci (int n){ //Casos Base if (n == 0) return 0; else{ if (n == 1) return 1; // Paso recursivo else{ return Fibonacci(n-1)+Fibonacci(n-2); } } } U2. Recursividad.
  • 28. Práctica (Equipo) Conversión Decimal a Binario void aBinario (int n){ // Paso recursivo if (n >= 2) aBinario (n/2); System.out.print(n%2); } U2. Recursividad.
  • 29. Práctica (Equipo) Elevar a una potencia int Potencia (int n, int exp){ //Casos Base if (exp == 0) return 1; else{ if (exp == 1) return n; // Paso recursivo else{ return n * Potencia(n, exp-1); } } } U2. Recursividad.
  • 30. Recursividad & Iteración RECURSIVIDAD ITERACIÓN S Llamadas repetidas a los S Instrucción de repetición métodos. explícita. S Termina cuando se reconoce unS Termina cuando falla la caso base. condición. S Se aproxima poco a poco a la S Repetición controlada por terminación. contador. S Infinita cuando no reduce el S Infinita cuando la condición problema. nunca se vuelve falsa. S Sobrecarga de llamadas a métodos. U2. Recursividad.
  • 31. Ventajas S Menos líneas de código. S Refleja el problema con más naturalidad. S Produce un programa más fácil de entender y depurar. U2. Recursividad.
  • 32. Desventajas S Tiempo de procesador. S Espacio en memoria, consume memoria adicional. U2. Recursividad.
  • 33. Referencias 1. Martínez, R. & Quiroga, E. (2001). Estructura de datos. Referencia práctica con orientación a objetos. Thomson Learning. 2. Decker, H. (1993). Working Classes. Data Structures and algorithms using C++. PWS Publishing Company. 3. Deitel, H. M. & Deitel P. J. (2004). Cómo programar en JAVA 5ª Edición. Pearson Hall. 4. Weiss, M. A. Estructura de datos en Java. Ed. Addison Wesley. U2. Recursividad.
  • 34. ¡ Gracias por su atención ! www.tecmartinez.edu.mx Tel y Fax: (232) 3.73.52.40 . CP 93600 Miguel Hidalgo # 101, Col. Adolfo Ruiz Cortínez . Martínez de la Torre, Veracruz, México. 34