SlideShare una empresa de Scribd logo
EQUIPO Nº 4 RECURSIVIDAD ALVARADO ROSA NELFALY MEDINA BETZY RODRIGUEZ VASQUEZ ALBA RIVAS MIRIAM RIOS LUIS Prof. Ing. Zamantha González. PNFSI. Cojedes.
[object Object],[object Object],[object Object],CONCEPTO
CONCEPTO Para que una función recursiva sea válida, la referencia a sí misma debe ser relativamente más sencilla que el caso considerado. En un algoritmo recursivo distinguimos como mínimo 2 partes:  a). Caso trivial, base o fin de recursión: Es un caso donde el problema puede resolverse sin tener que hacer uso de una nueva llamada a sí mismo. Evita la continuación indefinida de las partes recursivas. b). Parte puramente recursiva: Relaciona el resultado del algoritmo con resultados de casos mas simples. Se hacen nuevas llamadas a la función, pero están más próximas al caso base.
CONCEPTO Ejemplos: ITERATIVO: Int Factorial (int n ) { Int ¡, res = 1; For(¡=1;¡<=n;¡++ ) res = res*¡; return (res); } RECURSIVO: Int Factorial (int n ) { If (n==0) return (1); Return (n*Factorial (n-1)); }
UTILIDAD DE LA RECURSIVIDAD Se utiliza para realizar una llamada a una función desde  la misma función.  Hemos visto que la recursión  es una técnica potente de programación para resolver, mediante soluciones simples  y claras, problemas de gran complejidad.
[object Object],[object Object],[object Object],UTILIDAD DE LA RECURSIVIDAD
UTILIDAD DE LA RECURSIVIDAD Ej: de Factorial en algoritmo:   N es 0 FACTORIAL  1 Retorno FACT  FACTORIAL   (3) N es 3 FACTORIAL  3* FACTORIAL  (2) Retorno N es 2 FACTORIAL  2* FACTORIAL  (1) Retorno N es 1 FACTORIAL  1* FACTORIAL  (0) Retorno
TIPOS DE RECURSIVIDAD Recursividad Simple: Aquella en cuya definición sólo aparece una llamada recursiva. Se puede transformar con facilidad en algoritmos iterativos.  Recursividad Múltiple: Se da cuando hay más de una llamada a sí misma dentro del cuerpo de la función, resultando más difícil de hacer de forma iterativa.  int Fib( int n )  /* ej: Fibonacci */ {  if(n<=1) return(1);   return(Fib(n-1) + Fib(n-2)); }
TIPOS DE RECURSIVIDAD Recursividad Anidada: En algunos de los argumentos de la llamada recursiva hay una nueva llamada a sí misma.  int Ack( int n, int m )  /* ej: Ackerman */ { if(n==0 ) return(m+1);   else if(m==0) return(Ack(n-1,1));  return(Ack(n-1, Ack(n,m-1))); }
TIPOS DE RECURSIVIDAD Recursividad cruzada o indirecta: Son algoritmos donde una función provoca una llamada a sí misma de forma indirecta, a través de otras funciones.  Ej: Par o Impar: int par( int nump ) { if(nump==0) return(1); return( impar(nump-1)); } int impar( int numi ) { if(numi==0) return(0); return( par(numi-1)); }
ALGORITMO:  DIVIDE  Y  VENCERAS Una de las técnicas más importantes para el diseño de algoritmos típicos en la Recursividad es la técnica  llamada:”Divide y Vencerás”.  Esta técnica consiste en transformar un problema  de tamaño n en problemas más pequeños, de tamaño menor que n. El algoritmo de búsqueda binario es un ejemplo típico de esta técnica algorítmica.  La lista ordenada de los elementos se divide en dos mitades de forma de que el problema de búsqueda de un elemento se reduce al problema de búsqueda en una mitad; así se prosigue dividiendo el problema hasta encontrar el elemento, o bien decir que no se encuentra. Un algoritmo “Divide y Vencerás”, puede ser definido de manera recursiva, de tal modo que se llama así mismo aplicándose cada vez a un conjunto menor de elementos. ALGORITMO TIPICO
ALGORITMO TIPICO TORRE DE  HANOI: Problema de solución recursiva, consiste en mover todos los discos (de diferentes tamaños) de una aguja a otra, Usando una aguja auxiliar, y sabiendo que un disco no puede estar sobre otro menor que éste.
ALGORITMO TIPICO 1 2 3 A B C
ALGORITMO TIPICO /* Solución : 1- Mover n-1 discos de A a B 2- Mover 1 discos de A a C 3- Mover n-1 discos de B a C */ Void Hanoi(n,inicial,aux,final) { if( n>0) { Hanoi (n-1,inicial,final,aux);   printf (“Mover % d de % c”, n,inicial,final);   Hanoi (aux, inicial,final); } }
ALGORITMO TIPICO Ordenación por inserción Se trata de ordenar un vector formado por n enteros. Para esto el algoritmo de inserción va intercambiando elementos del array hasta que esté ordenado.
ALGORITMO TIPICO   void insercion (int a[])  {   int i, j, x;     for (i=1; i   x = a[i];   j = i - 1;   while ((j>-1) && (a[j]>x)) {   a[j+1] = a[j];   j = j - 1;   }   a[j+1] = x;   }  }  
ALGORITMO TIPICO Ordenación por selección Se trata de ordenar un vector formado por n enteros. Para esto el algoritmo de selección va seleccionando los elementos menores al actual y los intercambia.
ALGORITMO TIPICO   void seleccion (int a[])  {   int i, j;   int minx, minj;     for (i=0; i < n-1; i++) {   minj = i;   minx = a[i];   for (j = i; j < n; j++) {   if (a[j] < minx) {   minj = j;   minx = a[j];   }   }   a[minj] = a[i];   a[i] = minx;    }  }
Satisface dos interrogantes 1.- ¿Cómo se resuelve el caso mas pequeño del problema? 2.- ¿Cómo se resuelve el caso general del problema, sabiendo que tiene el caso anterior mas pequeño? IMPLEMENTACIÓN ALGORITMOS RECURSIVOS
IMPLEMENTACIÓN ALGORITMOS RECURSIVOS RECURSIVO A SCENDEN T E DE SCENDEN T E REGRESIVO PROGRESIVO
IMPLEMENTACIÓN ALGORITMOS RECURSIVOS GRANDE PEQUEÑO
IMPLEMENTACIÓN ALGORITMOS RECURSIVOS •  Ejercicio: Escribir una función recursiva que calcule la división entera entre dos números: int DivisionEntera(int a, int b, int &resto) { int cociente; if ( a < b) { resto = a; cociente = 0; } else { a= a - b;  cociente = cociente + 1;  cociente = DivisionEntera(a, b, resto); } return cociente; }
IMPLEMENTACIÓN ALGORITMOS RECURSIVOS a < b 10<5 F a < b 5<5 F a = 5-5 a=0 Cociente 1+1=2 a < b 0<5 V 2 0 5 0 1 Ø 5 5 1 Ø 5 10 Cociente Rest. B A 5 10 2 =
Gracias

Más contenido relacionado

La actualidad más candente

Cuadro comparativo algoritmos de ordenamiento
Cuadro comparativo algoritmos de ordenamientoCuadro comparativo algoritmos de ordenamiento
Cuadro comparativo algoritmos de ordenamiento
Lutzo Guzmán
 
Modelo Relacional
Modelo RelacionalModelo Relacional
Modelo Relacionalomarzon
 
Listas doblemente enlazadas
Listas doblemente enlazadasListas doblemente enlazadas
Listas doblemente enlazadas
DĴäîřo Lêmä
 
Búsqueda secuencial y binaria
Búsqueda secuencial y binariaBúsqueda secuencial y binaria
Búsqueda secuencial y binaria
Alvaro Enrique Ruano
 
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
José Antonio Sandoval Acosta
 
Recursividad
RecursividadRecursividad
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
tavo_3315_
 
ANALISIS DE ALGORITMOS
ANALISIS DE ALGORITMOSANALISIS DE ALGORITMOS
ANALISIS DE ALGORITMOS
Evans Balcazar
 
Estructura de Datos: Recursividad
Estructura de Datos: RecursividadEstructura de Datos: Recursividad
Estructura de Datos: RecursividadYanahui Bc
 
arboles avl con codigo en java
arboles avl con codigo en javaarboles avl con codigo en java
arboles avl con codigo en java
marhoz
 
Arboles presentacion
Arboles presentacionArboles presentacion
Arboles presentacionjenny
 
Metodos de-ordenamiento
Metodos de-ordenamientoMetodos de-ordenamiento
Metodos de-ordenamiento
deff000001
 
Portafolio unidad 2 [Lenguajes y autómatas]- Expresiones y lenguajes regulares
Portafolio unidad 2 [Lenguajes y autómatas]- Expresiones y lenguajes regularesPortafolio unidad 2 [Lenguajes y autómatas]- Expresiones y lenguajes regulares
Portafolio unidad 2 [Lenguajes y autómatas]- Expresiones y lenguajes regulares
Humano Terricola
 
Estructura de Datos - Unidad II Recursividad
Estructura de Datos - Unidad II RecursividadEstructura de Datos - Unidad II Recursividad
Estructura de Datos - Unidad II Recursividad
José Antonio Sandoval Acosta
 
Programación 3: listas enlazadas
Programación 3: listas enlazadasProgramación 3: listas enlazadas
Programación 3: listas enlazadas
Angel Vázquez Patiño
 
Registros de control y estados de la CPU
Registros de control y estados de la CPURegistros de control y estados de la CPU
Registros de control y estados de la CPUIvan Porras
 

La actualidad más candente (20)

Cuadro comparativo algoritmos de ordenamiento
Cuadro comparativo algoritmos de ordenamientoCuadro comparativo algoritmos de ordenamiento
Cuadro comparativo algoritmos de ordenamiento
 
Modelo Relacional
Modelo RelacionalModelo Relacional
Modelo Relacional
 
Listas doblemente enlazadas
Listas doblemente enlazadasListas doblemente enlazadas
Listas doblemente enlazadas
 
Arboles multicamino
Arboles  multicaminoArboles  multicamino
Arboles multicamino
 
Búsqueda secuencial y binaria
Búsqueda secuencial y binariaBúsqueda secuencial y binaria
Búsqueda secuencial y binaria
 
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
 
Recursividad
RecursividadRecursividad
Recursividad
 
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
 
ANALISIS DE ALGORITMOS
ANALISIS DE ALGORITMOSANALISIS DE ALGORITMOS
ANALISIS DE ALGORITMOS
 
Estructura de Datos: Recursividad
Estructura de Datos: RecursividadEstructura de Datos: Recursividad
Estructura de Datos: Recursividad
 
arboles avl con codigo en java
arboles avl con codigo en javaarboles avl con codigo en java
arboles avl con codigo en java
 
Arboles presentacion
Arboles presentacionArboles presentacion
Arboles presentacion
 
Metodos de-ordenamiento
Metodos de-ordenamientoMetodos de-ordenamiento
Metodos de-ordenamiento
 
Portafolio unidad 2 [Lenguajes y autómatas]- Expresiones y lenguajes regulares
Portafolio unidad 2 [Lenguajes y autómatas]- Expresiones y lenguajes regularesPortafolio unidad 2 [Lenguajes y autómatas]- Expresiones y lenguajes regulares
Portafolio unidad 2 [Lenguajes y autómatas]- Expresiones y lenguajes regulares
 
Estructura de Datos - Unidad II Recursividad
Estructura de Datos - Unidad II RecursividadEstructura de Datos - Unidad II Recursividad
Estructura de Datos - Unidad II Recursividad
 
Programación 3: listas enlazadas
Programación 3: listas enlazadasProgramación 3: listas enlazadas
Programación 3: listas enlazadas
 
Estructura datos pilas y colas
Estructura datos pilas y colasEstructura datos pilas y colas
Estructura datos pilas y colas
 
Registros de control y estados de la CPU
Registros de control y estados de la CPURegistros de control y estados de la CPU
Registros de control y estados de la CPU
 
Pilas y colas
Pilas y colasPilas y colas
Pilas y colas
 
Ciclo de instrucción
Ciclo de instrucciónCiclo de instrucción
Ciclo de instrucción
 

Destacado

Unidad 4 est. dat. recursividad
Unidad 4  est. dat. recursividadUnidad 4  est. dat. recursividad
Unidad 4 est. dat. recursividadrehoscript
 
Complemento a recursividad
Complemento a recursividadComplemento a recursividad
Complemento a recursividadfelipe190
 
Recursividad
RecursividadRecursividad
Recursividad
TAtiizz Villalobos
 
ResolucióN De Problemas
ResolucióN De ProblemasResolucióN De Problemas
ResolucióN De Problemasguest796d29
 
52 ejercicios resueltos en pseudocodigo
52 ejercicios resueltos en pseudocodigo52 ejercicios resueltos en pseudocodigo
52 ejercicios resueltos en pseudocodigo
Brivé Soluciones
 
7222014 ejercicios-resueltos-con-pseint
7222014 ejercicios-resueltos-con-pseint7222014 ejercicios-resueltos-con-pseint
7222014 ejercicios-resueltos-con-pseintJoselo Chushig
 
U1 Analisis Algoritmos Complejidad
U1 Analisis Algoritmos ComplejidadU1 Analisis Algoritmos Complejidad
U1 Analisis Algoritmos Complejidadrezzaca
 
SISTEMA DE FACTURACION (Ejemplo desarrollado)
SISTEMA DE FACTURACION (Ejemplo desarrollado)SISTEMA DE FACTURACION (Ejemplo desarrollado)
SISTEMA DE FACTURACION (Ejemplo desarrollado)
Darwin Durand
 

Destacado (9)

Unidad 4 est. dat. recursividad
Unidad 4  est. dat. recursividadUnidad 4  est. dat. recursividad
Unidad 4 est. dat. recursividad
 
Complemento a recursividad
Complemento a recursividadComplemento a recursividad
Complemento a recursividad
 
Recursividad
RecursividadRecursividad
Recursividad
 
Recursividad
RecursividadRecursividad
Recursividad
 
ResolucióN De Problemas
ResolucióN De ProblemasResolucióN De Problemas
ResolucióN De Problemas
 
52 ejercicios resueltos en pseudocodigo
52 ejercicios resueltos en pseudocodigo52 ejercicios resueltos en pseudocodigo
52 ejercicios resueltos en pseudocodigo
 
7222014 ejercicios-resueltos-con-pseint
7222014 ejercicios-resueltos-con-pseint7222014 ejercicios-resueltos-con-pseint
7222014 ejercicios-resueltos-con-pseint
 
U1 Analisis Algoritmos Complejidad
U1 Analisis Algoritmos ComplejidadU1 Analisis Algoritmos Complejidad
U1 Analisis Algoritmos Complejidad
 
SISTEMA DE FACTURACION (Ejemplo desarrollado)
SISTEMA DE FACTURACION (Ejemplo desarrollado)SISTEMA DE FACTURACION (Ejemplo desarrollado)
SISTEMA DE FACTURACION (Ejemplo desarrollado)
 

Similar a Recursividad

recursividadexposicion1-090727182853-phpapp01.ppt
recursividadexposicion1-090727182853-phpapp01.pptrecursividadexposicion1-090727182853-phpapp01.ppt
recursividadexposicion1-090727182853-phpapp01.ppt
JUANANTONIOMACKLISHG
 
Recursividad.pdf
Recursividad.pdfRecursividad.pdf
Recursividad.pdf
RonalRojasPacherres
 
Metodologia de la programacion recursividad
Metodologia de la programacion   recursividadMetodologia de la programacion   recursividad
Metodologia de la programacion recursividadvictdiazm
 
recursividad EN PROGRAMACION ORIENTADA .pptx
recursividad EN PROGRAMACION ORIENTADA .pptxrecursividad EN PROGRAMACION ORIENTADA .pptx
recursividad EN PROGRAMACION ORIENTADA .pptx
juan gonzalez
 
recursividad.pptx
recursividad.pptxrecursividad.pptx
recursividad.pptx
juan gonzalez
 
Funciones recursivas
Funciones recursivasFunciones recursivas
Funciones recursivas
Cesar Oswaldo Osorio Agualongo
 
2. Recursividad
2. Recursividad2. Recursividad
2. Recursividad
Fernando Solis
 
RECURSIVIDAD
RECURSIVIDADRECURSIVIDAD
RECURSIVIDAD
Fernando Solis
 
Cap1.1 recursividad
Cap1.1 recursividadCap1.1 recursividad
Cap1.1 recursividad
Mary Dunnia Lopez N.
 
Recursividad 100329105433-phpapp01
Recursividad 100329105433-phpapp01Recursividad 100329105433-phpapp01
Recursividad 100329105433-phpapp01
EldonCent
 
Recursividad.pdf
Recursividad.pdfRecursividad.pdf
Recursividad.pdf
ReneSantiago14
 
Funciones recursivas en C++
Funciones recursivas en C++Funciones recursivas en C++
Funciones recursivas en C++
BenjaminIsraelLlacta
 
FUNCIONES DE STELLA
FUNCIONES DE STELLAFUNCIONES DE STELLA
FUNCIONES DE STELLA
Shirley Contreras Ulloa
 
Funciones recursivas
Funciones recursivasFunciones recursivas
Funciones recursivas
Yelit Conde Tellez
 

Similar a Recursividad (20)

recursividadexposicion1-090727182853-phpapp01.ppt
recursividadexposicion1-090727182853-phpapp01.pptrecursividadexposicion1-090727182853-phpapp01.ppt
recursividadexposicion1-090727182853-phpapp01.ppt
 
Recursividad.pdf
Recursividad.pdfRecursividad.pdf
Recursividad.pdf
 
Metodologia de la programacion recursividad
Metodologia de la programacion   recursividadMetodologia de la programacion   recursividad
Metodologia de la programacion 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
Funciones recursivasFunciones recursivas
Funciones recursivas
 
03 tda1 t2018
03 tda1 t201803 tda1 t2018
03 tda1 t2018
 
2. Recursividad
2. Recursividad2. Recursividad
2. Recursividad
 
Recursividad
RecursividadRecursividad
Recursividad
 
RECURSIVIDAD
RECURSIVIDADRECURSIVIDAD
RECURSIVIDAD
 
Algoritmos recursivos
Algoritmos recursivosAlgoritmos recursivos
Algoritmos recursivos
 
Cap1.1 recursividad
Cap1.1 recursividadCap1.1 recursividad
Cap1.1 recursividad
 
Recursividad 100329105433-phpapp01
Recursividad 100329105433-phpapp01Recursividad 100329105433-phpapp01
Recursividad 100329105433-phpapp01
 
Recursividad.pdf
Recursividad.pdfRecursividad.pdf
Recursividad.pdf
 
II Unidad
II UnidadII Unidad
II Unidad
 
II Unidad
II UnidadII Unidad
II Unidad
 
Funciones recursivas en C++
Funciones recursivas en C++Funciones recursivas en C++
Funciones recursivas en C++
 
FUNCIONES DE STELLA
FUNCIONES DE STELLAFUNCIONES DE STELLA
FUNCIONES DE STELLA
 
Complejidad
ComplejidadComplejidad
Complejidad
 
Funciones recursivas
Funciones recursivasFunciones recursivas
Funciones recursivas
 

Último

proyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmusproyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmus
raquelariza02
 
Conceptos Básicos de Programación. Tecnología
Conceptos Básicos de Programación. TecnologíaConceptos Básicos de Programación. Tecnología
Conceptos Básicos de Programación. Tecnología
coloradxmaria
 
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdfTrabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
cj3806354
 
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTALINFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
CrystalRomero18
 
EduFlex, una educación accesible para quienes no entienden en clases
EduFlex, una educación accesible para quienes no entienden en clasesEduFlex, una educación accesible para quienes no entienden en clases
EduFlex, una educación accesible para quienes no entienden en clases
PABLOCESARGARZONBENI
 
Desarrollo de Habilidades de Pensamiento.docx (3).pdf
Desarrollo de Habilidades de Pensamiento.docx (3).pdfDesarrollo de Habilidades de Pensamiento.docx (3).pdf
Desarrollo de Habilidades de Pensamiento.docx (3).pdf
AlejandraCasallas7
 
Conceptos Básicos de Programación L.D 10-5
Conceptos Básicos de Programación L.D 10-5Conceptos Básicos de Programación L.D 10-5
Conceptos Básicos de Programación L.D 10-5
JulyMuoz18
 
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
vazquezgarciajesusma
 
3Redu: Responsabilidad, Resiliencia y Respeto
3Redu: Responsabilidad, Resiliencia y Respeto3Redu: Responsabilidad, Resiliencia y Respeto
3Redu: Responsabilidad, Resiliencia y Respeto
cdraco
 
Estructuras Básicas_ Conceptos Basicos De Programacion.pdf
Estructuras Básicas_ Conceptos Basicos De Programacion.pdfEstructuras Básicas_ Conceptos Basicos De Programacion.pdf
Estructuras Básicas_ Conceptos Basicos De Programacion.pdf
IsabellaRubio6
 
Inteligencia Artificial y Ciberseguridad.pdf
Inteligencia Artificial y Ciberseguridad.pdfInteligencia Artificial y Ciberseguridad.pdf
Inteligencia Artificial y Ciberseguridad.pdf
Emilio Casbas
 
Estructuras básicas_ conceptos de programación (1).docx
Estructuras básicas_ conceptos de programación  (1).docxEstructuras básicas_ conceptos de programación  (1).docx
Estructuras básicas_ conceptos de programación (1).docx
SamuelRamirez83524
 
leidy fuentes - power point -expocccion -unidad 4 (1).pptx
leidy fuentes - power point -expocccion -unidad 4 (1).pptxleidy fuentes - power point -expocccion -unidad 4 (1).pptx
leidy fuentes - power point -expocccion -unidad 4 (1).pptx
Leidyfuentes19
 
Robótica educativa para la eduacion primaria .pptx
Robótica educativa para la eduacion primaria .pptxRobótica educativa para la eduacion primaria .pptx
Robótica educativa para la eduacion primaria .pptx
44652726
 
Estructuras Básicas_Tecnología_Grado10-7.pdf
Estructuras Básicas_Tecnología_Grado10-7.pdfEstructuras Básicas_Tecnología_Grado10-7.pdf
Estructuras Básicas_Tecnología_Grado10-7.pdf
cristianrb0324
 
Diagrama de flujo basada en la reparacion de automoviles.pdf
Diagrama de flujo basada en la reparacion de automoviles.pdfDiagrama de flujo basada en la reparacion de automoviles.pdf
Diagrama de flujo basada en la reparacion de automoviles.pdf
ManuelCampos464987
 
trabajo de tecnologia, segundo periodo 9-6f
trabajo de tecnologia, segundo periodo 9-6ftrabajo de tecnologia, segundo periodo 9-6f
trabajo de tecnologia, segundo periodo 9-6f
zoecaicedosalazar
 
Posnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativaPosnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativa
Fernando Villares
 
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdfTRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
thomasdcroz38
 
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdfDESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
marianabz2403
 

Último (20)

proyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmusproyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmus
 
Conceptos Básicos de Programación. Tecnología
Conceptos Básicos de Programación. TecnologíaConceptos Básicos de Programación. Tecnología
Conceptos Básicos de Programación. Tecnología
 
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdfTrabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
 
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTALINFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
 
EduFlex, una educación accesible para quienes no entienden en clases
EduFlex, una educación accesible para quienes no entienden en clasesEduFlex, una educación accesible para quienes no entienden en clases
EduFlex, una educación accesible para quienes no entienden en clases
 
Desarrollo de Habilidades de Pensamiento.docx (3).pdf
Desarrollo de Habilidades de Pensamiento.docx (3).pdfDesarrollo de Habilidades de Pensamiento.docx (3).pdf
Desarrollo de Habilidades de Pensamiento.docx (3).pdf
 
Conceptos Básicos de Programación L.D 10-5
Conceptos Básicos de Programación L.D 10-5Conceptos Básicos de Programación L.D 10-5
Conceptos Básicos de Programación L.D 10-5
 
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
 
3Redu: Responsabilidad, Resiliencia y Respeto
3Redu: Responsabilidad, Resiliencia y Respeto3Redu: Responsabilidad, Resiliencia y Respeto
3Redu: Responsabilidad, Resiliencia y Respeto
 
Estructuras Básicas_ Conceptos Basicos De Programacion.pdf
Estructuras Básicas_ Conceptos Basicos De Programacion.pdfEstructuras Básicas_ Conceptos Basicos De Programacion.pdf
Estructuras Básicas_ Conceptos Basicos De Programacion.pdf
 
Inteligencia Artificial y Ciberseguridad.pdf
Inteligencia Artificial y Ciberseguridad.pdfInteligencia Artificial y Ciberseguridad.pdf
Inteligencia Artificial y Ciberseguridad.pdf
 
Estructuras básicas_ conceptos de programación (1).docx
Estructuras básicas_ conceptos de programación  (1).docxEstructuras básicas_ conceptos de programación  (1).docx
Estructuras básicas_ conceptos de programación (1).docx
 
leidy fuentes - power point -expocccion -unidad 4 (1).pptx
leidy fuentes - power point -expocccion -unidad 4 (1).pptxleidy fuentes - power point -expocccion -unidad 4 (1).pptx
leidy fuentes - power point -expocccion -unidad 4 (1).pptx
 
Robótica educativa para la eduacion primaria .pptx
Robótica educativa para la eduacion primaria .pptxRobótica educativa para la eduacion primaria .pptx
Robótica educativa para la eduacion primaria .pptx
 
Estructuras Básicas_Tecnología_Grado10-7.pdf
Estructuras Básicas_Tecnología_Grado10-7.pdfEstructuras Básicas_Tecnología_Grado10-7.pdf
Estructuras Básicas_Tecnología_Grado10-7.pdf
 
Diagrama de flujo basada en la reparacion de automoviles.pdf
Diagrama de flujo basada en la reparacion de automoviles.pdfDiagrama de flujo basada en la reparacion de automoviles.pdf
Diagrama de flujo basada en la reparacion de automoviles.pdf
 
trabajo de tecnologia, segundo periodo 9-6f
trabajo de tecnologia, segundo periodo 9-6ftrabajo de tecnologia, segundo periodo 9-6f
trabajo de tecnologia, segundo periodo 9-6f
 
Posnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativaPosnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativa
 
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdfTRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
 
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdfDESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
 

Recursividad

  • 1. EQUIPO Nº 4 RECURSIVIDAD ALVARADO ROSA NELFALY MEDINA BETZY RODRIGUEZ VASQUEZ ALBA RIVAS MIRIAM RIOS LUIS Prof. Ing. Zamantha González. PNFSI. Cojedes.
  • 2.
  • 3. CONCEPTO Para que una función recursiva sea válida, la referencia a sí misma debe ser relativamente más sencilla que el caso considerado. En un algoritmo recursivo distinguimos como mínimo 2 partes: a). Caso trivial, base o fin de recursión: Es un caso donde el problema puede resolverse sin tener que hacer uso de una nueva llamada a sí mismo. Evita la continuación indefinida de las partes recursivas. b). Parte puramente recursiva: Relaciona el resultado del algoritmo con resultados de casos mas simples. Se hacen nuevas llamadas a la función, pero están más próximas al caso base.
  • 4. CONCEPTO Ejemplos: ITERATIVO: Int Factorial (int n ) { Int ¡, res = 1; For(¡=1;¡<=n;¡++ ) res = res*¡; return (res); } RECURSIVO: Int Factorial (int n ) { If (n==0) return (1); Return (n*Factorial (n-1)); }
  • 5. UTILIDAD DE LA RECURSIVIDAD Se utiliza para realizar una llamada a una función desde la misma función. Hemos visto que la recursión es una técnica potente de programación para resolver, mediante soluciones simples y claras, problemas de gran complejidad.
  • 6.
  • 7. UTILIDAD DE LA RECURSIVIDAD Ej: de Factorial en algoritmo: N es 0 FACTORIAL 1 Retorno FACT FACTORIAL (3) N es 3 FACTORIAL 3* FACTORIAL (2) Retorno N es 2 FACTORIAL 2* FACTORIAL (1) Retorno N es 1 FACTORIAL 1* FACTORIAL (0) Retorno
  • 8. TIPOS DE RECURSIVIDAD Recursividad Simple: Aquella en cuya definición sólo aparece una llamada recursiva. Se puede transformar con facilidad en algoritmos iterativos. Recursividad Múltiple: Se da cuando hay más de una llamada a sí misma dentro del cuerpo de la función, resultando más difícil de hacer de forma iterativa. int Fib( int n ) /* ej: Fibonacci */ { if(n<=1) return(1); return(Fib(n-1) + Fib(n-2)); }
  • 9. TIPOS DE RECURSIVIDAD Recursividad Anidada: En algunos de los argumentos de la llamada recursiva hay una nueva llamada a sí misma. int Ack( int n, int m ) /* ej: Ackerman */ { if(n==0 ) return(m+1); else if(m==0) return(Ack(n-1,1)); return(Ack(n-1, Ack(n,m-1))); }
  • 10. TIPOS DE RECURSIVIDAD Recursividad cruzada o indirecta: Son algoritmos donde una función provoca una llamada a sí misma de forma indirecta, a través de otras funciones. Ej: Par o Impar: int par( int nump ) { if(nump==0) return(1); return( impar(nump-1)); } int impar( int numi ) { if(numi==0) return(0); return( par(numi-1)); }
  • 11. ALGORITMO: DIVIDE Y VENCERAS Una de las técnicas más importantes para el diseño de algoritmos típicos en la Recursividad es la técnica llamada:”Divide y Vencerás”. Esta técnica consiste en transformar un problema de tamaño n en problemas más pequeños, de tamaño menor que n. El algoritmo de búsqueda binario es un ejemplo típico de esta técnica algorítmica. La lista ordenada de los elementos se divide en dos mitades de forma de que el problema de búsqueda de un elemento se reduce al problema de búsqueda en una mitad; así se prosigue dividiendo el problema hasta encontrar el elemento, o bien decir que no se encuentra. Un algoritmo “Divide y Vencerás”, puede ser definido de manera recursiva, de tal modo que se llama así mismo aplicándose cada vez a un conjunto menor de elementos. ALGORITMO TIPICO
  • 12. ALGORITMO TIPICO TORRE DE HANOI: Problema de solución recursiva, consiste en mover todos los discos (de diferentes tamaños) de una aguja a otra, Usando una aguja auxiliar, y sabiendo que un disco no puede estar sobre otro menor que éste.
  • 13. ALGORITMO TIPICO 1 2 3 A B C
  • 14. ALGORITMO TIPICO /* Solución : 1- Mover n-1 discos de A a B 2- Mover 1 discos de A a C 3- Mover n-1 discos de B a C */ Void Hanoi(n,inicial,aux,final) { if( n>0) { Hanoi (n-1,inicial,final,aux); printf (“Mover % d de % c”, n,inicial,final); Hanoi (aux, inicial,final); } }
  • 15. ALGORITMO TIPICO Ordenación por inserción Se trata de ordenar un vector formado por n enteros. Para esto el algoritmo de inserción va intercambiando elementos del array hasta que esté ordenado.
  • 16. ALGORITMO TIPICO   void insercion (int a[])  {   int i, j, x;     for (i=1; i   x = a[i];   j = i - 1;   while ((j>-1) && (a[j]>x)) {   a[j+1] = a[j];   j = j - 1;   }   a[j+1] = x;   }  }  
  • 17. ALGORITMO TIPICO Ordenación por selección Se trata de ordenar un vector formado por n enteros. Para esto el algoritmo de selección va seleccionando los elementos menores al actual y los intercambia.
  • 18. ALGORITMO TIPICO   void seleccion (int a[])  {   int i, j;   int minx, minj;     for (i=0; i < n-1; i++) {   minj = i;   minx = a[i];   for (j = i; j < n; j++) {   if (a[j] < minx) {   minj = j;   minx = a[j];   }   }   a[minj] = a[i];   a[i] = minx;   }  }
  • 19. Satisface dos interrogantes 1.- ¿Cómo se resuelve el caso mas pequeño del problema? 2.- ¿Cómo se resuelve el caso general del problema, sabiendo que tiene el caso anterior mas pequeño? IMPLEMENTACIÓN ALGORITMOS RECURSIVOS
  • 20. IMPLEMENTACIÓN ALGORITMOS RECURSIVOS RECURSIVO A SCENDEN T E DE SCENDEN T E REGRESIVO PROGRESIVO
  • 22. IMPLEMENTACIÓN ALGORITMOS RECURSIVOS • Ejercicio: Escribir una función recursiva que calcule la división entera entre dos números: int DivisionEntera(int a, int b, int &resto) { int cociente; if ( a < b) { resto = a; cociente = 0; } else { a= a - b; cociente = cociente + 1; cociente = DivisionEntera(a, b, resto); } return cociente; }
  • 23. IMPLEMENTACIÓN ALGORITMOS RECURSIVOS a < b 10<5 F a < b 5<5 F a = 5-5 a=0 Cociente 1+1=2 a < b 0<5 V 2 0 5 0 1 Ø 5 5 1 Ø 5 10 Cociente Rest. B A 5 10 2 =