SlideShare ist ein Scribd-Unternehmen logo
1 von 11
INSTITUTO TECNOLÓGICO DE SALINA CRUZ 
ASIGNATURA: 
ESTRUCTURA Y ORGANIZACIÓN DE DATOS 
UNIDAD 3 ESTRUCTURAS NO LINEALES 
PROFESORA: 
M.C SUSANA MÓNICA ROMÁN NÁJERA 
TEMA: 
REPORTE DE INVESTIGACIÓN DEL TEMA RECURSIVIDAD 
ALUMNA: 
VILLALOBOS PEREZ BENITA 
SEMESTRE: 3 GRUPO: E 
SALINACRUZ, OAXACA A 21 DE OCTUBRE 2014.
ÍNDICE 
INTRODUCCIÓN ............................................................................................................................... 1 
RECURSIVIDAD ................................................................................................................................ 2 
MECÁNICA RECURSIÓN................................................................................................................ 5 
TRANSFORMACIÓN ALGORITMOS RECURSIVOS A ITERATIVOS .................................... 6 
RECURSIVIDAD EN DISEÑO......................................................................................................... 7 
CONCLUSIÓN ................................................................................................................................... 8 
OTRAS FUENTES CONSULTADAS ............................................................................................. 9
1 
INTRODUCCIÓN 
Para seguir con la continuación de los temas referentes a la unidad 3 se estará 
hablando sobre el tema de recursividad más que nada se enfoca a que dicha función 
tiene varios ciclos repetitivos. 
Mediante la realización del siguiente trabajo se encontraran diferentes 
conceptos de recursividad, sus funciones, ventajas, desventajas para poder adquirir 
más conocimientos sobre el tema y comprender mejor cada concepto y relacionarla 
con la vida real. 
Esperando que este trabajo contenga la información necesaria para aclarar 
cualquier dudad del lector así como también de la persona que lo realiza.
2 
RECURSIVIDAD 
Podemos definir la recursividad como un proceso que se define en términos de sí 
mismo. 
El concepto de recursión es difícil de precisar, pero existen ejemplos de la vida 
cotidiana que nos pueden servir para darnos una mejor idea acerca de lo que es 
recursividad. Un ejemplo de esto es cuando se toma una fotografía de una fotografía, 
o cuando en un programa de televisión un periodista transfiere el control a otro 
periodista que se encuentra en otra ciudad, y este a su vez le transfiere el control a 
otro. 
Otro ejemplo paradigmático seria el del triángulo de Sierpinski en el que cada 
triangulo está compuesto de otro más pequeños, compuestos a su vez de la misma 
estructura recursiva (de hecho en este caso se trata de una estructura fractal). 
Casos típicos de estructuras de datos definidas de manera recursiva son los 
árboles binarios y las listas enlazadas. 
La recursión se puede dar de dos formas: 
 DIRECTA. Este tipo de recursión se da cuando un subprograma se llama 
directamente a sí mismo. 
 INDIRECTA Sucede cuando un subprograma llama a un segundo subprograma, y 
este a su vez llama al primero, es decir el subproceso A llama al B, y el B invoca 
al subproceso A. 
La recursividad es un concepto fundamental en matemáticas y en computación. 
Es una alternativa diferente para implementar estructuras de repetición 
(ciclos). Los módulos se hacen llamadas recursivas. 
Se puede usar en toda situación en la cual la solución pueda ser expresada 
como una secuencia de movimientos, pasos o transformaciones gobernadas por un 
conjunto de reglas no ambiguas.
3 
Las funciones recursivas se componen de: 
Caso base: una solución simple para un caso particular (puede haber más de un 
caso base). 
Caso recursivo: una solución que involucra volver a utilizar la función original, con 
parámetros que se acercan más al caso base. Los pasos que sigue el caso recursivo 
son los siguientes: 
1. El procedimiento se llama a sí mismo 
2. El problema se resuelve, tratando el mismo problema pero de tamaño menor 
3. La manera en la cual el tamaño del problema disminuye asegura que el caso 
base eventualmente se alcanzará. 
Un objeto es recursivo cuando se define en función de sí mismo, es decir, 
interviene en su propia definición. 
La recursividad es la propiedad mediante la cual un subprograma o rutina puede 
llamarse a sí mismo. 
Utilizando la recursividad, la resolución de un problema se reduce a uno 
esencialmente igual pero algo menos complejo. 
Características que deben cumplir los problemas recursivos: 
 La recursividad debe terminar alguna vez: caso base 
 Cada nueva formulación estamos más cerca del caso final (o base). 
Factible de utilizar recursividad 
• Para simplificar el código. 
• Cuando la estructura de datos es recursiva ejemplo : árboles.
4 
No factible utilizar recursividad 
• Cuando los métodos usen arreglos largos. 
• Cuando el método cambia de manera impredecible de campos. 
• Cuando las iteraciones sean la mejor opción. 
¿POR QUÉ ESCRIBIR PROGRAMAS RECURSIVOS? 
 Son más cercanos a la descripción matemática. 
 Generalmente más fáciles de analizar 
 Se adaptan mejor a las estructuras de datos recursivas. 
 Los algoritmos recursivos ofrecen soluciones estructuradas, modulares y 
elegantemente simples. 
Los términos recurrencia, recursión o recursividad hacen referencia a una técnica 
de definición de conceptos (o de diseño de procesos) en la que el concepto definido 
(o el proceso diseñado) es usado en la propia definición (o diseño). 
Se dice que una función es recursiva cuando dicha función se define en términos 
de la misma función. Es importante recordar que no todas las funciones pueden 
llamarse a sí mismas, deben estar diseñadas especialmente para comportarse de 
manera recursiva, de otro modo dichas funciones podrían conducir a bucles infinitos, 
o a que el programa termine inadecuadamente. 
Por ejemplo, podríamos pensar en la creación de un algoritmo que produzca el 
resultado de un número factorial, la definición iterativa de dicho algoritmo seria la 
siguiente: 
int factorial (int n) 
{ 
prod = 1; 
for (x = n; x > 0; x-- ) 
prod *= x;
5 
return prod; 
} 
La definición iterativa es sencilla, pero no resulta tan intuitiva, en cambio, uno 
podría analizar más detalladamente el problema y generar una definición recursiva 
para una función factorial que podría resultar más intuitiva y sencilla de implementar: 
MECÁNICA RECURSIÓN. 
La mecánica de la recursividad está basada en una “pila”. Cuando un módulo 
recursivo se está ejecutando se crea en la memoria de la computadora una pila 
donde se almacenan los valores de los parámetros y de las variables locales del 
módulo. Si el módulo es función también se guarda en la pila el valor que adquiere la 
misma. 
Para cada llamada del módulo se almacenan en la pila los nuevos valores de 
los parámetros y de las variables locales, creándose un nuevo “registro de 
activación”. De tal forma que, la pila de recursión está formada por registros de 
activación. Al terminar una llamada al módulo, es decir, cuando se cumple la 
definición base, se libera (sale) el registro de activación que se encuentra en el tope 
de la pila. De esta forma es como puede “recordar” qué valores tenían los 
parámetros y las variables locales en la llamada anterior. 
Si observamos el proceso que seguimos para calcular 4! vemos que el valor 
de n fue cambiando conforme fuimos entrando en recursión y que al salir de 
recursión necesitábamos recordar el valor que tenía n en la expresión anterior. Esto 
quiere decir que los valores que fue adquiriendo n fueron entrando a la pila. 
No sólo debe recordar los valores que tenían los parámetros y las variables 
locales al realizarse la correspondiente llamada al módulo sino que también tiene que 
recordar qué instrucción debe realizar al terminar esa llamada. De tal forma que los 
registros de activación están compuestos básicamente de:
1. Instrucción a la que debe regresar el control una vez terminada la ejecución 
6 
actual del módulo. 
2. Todos los parámetros y variables locales del módulo. 
3. Si el módulo recursivo es una función el valor que adquiere la misma, ya que éste 
se debe regresar. 
Para hacer la representación de la pila de recursión numeramos las instrucciones 
a las que debe regresar el control una vez terminada la ejecución del módulo 
recursivo y estos valores son los que ponemos en la pila. 
TRANSFORMACIÓN ALGORITMOS RECURSIVOS A ITERATIVOS 
El concepto de recursividad va ligado al de repetición. Son recursivos aquellos 
algoritmos que, estando encapsulados dentro de una función, son llamados desde 
ella misma una y otra vez, en contraposición a los algoritmos iterativos, que hacen 
uso de ciclos while, do-while, for, etc. 
Algo es recursivo si se define en términos de sí mismo (cuando para definirse 
hace mención a sí mismo). Para que una definición recursiva sea válida, la referencia 
a sí misma debe ser relativamente más sencilla que el caso considerado. 
Ejemplo: definición de nº natural: 
 El N º 0 es natural 
 El Nº n es natural si n-1 lo es. 
En un algoritmo recursivo distinguimos como mínimo 2 partes: 
a) Caso trivial, base o de 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 más simples. Se hacen 
nuevas llamadas a la función, pero están más próximas al caso base. 
7 
RECURSIVIDAD EN DISEÑO 
Un procedimiento recursivo es aquel que se llama a si mismo, para poder funcionar 
tiene que tener una condición de salida que del número de veces que se va a llamar 
así mismo el procedimiento. 
La recursividad en diseño se refiere a la manera de cómo representar los 
procedimientos recursivos al momento de diseñar los programas. 
Dependiendo del método que utilicemos para diseñar la representación gráfica 
de la recursividad va a ser diferente sin embargo el procedimiento va a ser similar ya 
que el fin es el mismo poner una condición que nos diga si llamamos al método o que 
nos mande terminarlo. 
En un diagrama sería algo así: 
Figura 1 Recursividad
8 
CONCLUSIÓN 
La recursividad es un concepto fundamental en matemáticas y en computación. 
Es una alternativa diferente para implementar estructuras de repetición 
(ciclos). Los módulos se hacen llamadas recursivas. 
Se puede usar en toda situación en la cual la solución pueda ser expresada 
como una secuencia de movimientos, pasos o transformaciones gobernadas por un 
conjunto de reglas además como se pudo notar la recursividad también se puede 
trabajar mediante pilas, así como también se mencionó algunos algoritmos para 
utilizar la recursividad el cual se utilizó la de calcular un numero factorial es un 
ejemplo más común que se encontró. 
Esperando que el trabajo contenga la información necesaria para asi cumplir 
con las características que se van a calificar.
9 
OTRAS FUENTES CONSULTADAS 
Concepto de recursividad. Internet. En línea. Página consultada el día 16 de octubre 
de 2014. Disponible en: http://estructura-u1.blogspot.mx/2010/01/unidad-3- 
recursividad.html. 
Concepto de recursividad. Internet. En línea. Página consultada el día 16 de octubre 
de 2014. Disponible en: http://es.wikipedia.org/wiki/Recursi%C3%B3n. 
Concepto de recursividad. Internet. Fuera de línea. Página consultada el día 16 de 
octubre de 2014. Disponible en: 
http://webdelprofesor.ula.ve/nucleotrujillo/jalejandro/Prog2/Unidad3.pdf. 
Concepto de recursividad. Internet. En línea. Página consultada el día 16 de octubre 
de 2014. Disponible en: http://picandocodigo.net/2008/recursividad-en-programacion/. 
Concepto de recursividad. Internet. Fuera de línea. Página consultada el día 16 de 
octubre de 2014. Disponible en: 
http://www.uv.mx/personal/ocastillo/files/2011/04/Recursividad.pdf. 
Concepto de recursividad. Internet. En línea. Página consultada el día 16 de octubre 
de 2014. Disponible en: http://www.youtube.com/watch?v=heEjRbkvOog.

Weitere ähnliche Inhalte

Was ist angesagt?

Memoria dinamica
Memoria dinamicaMemoria dinamica
Memoria dinamica
gusolis93
 
Búsqueda Primero el Mejor
Búsqueda Primero el MejorBúsqueda Primero el Mejor
Búsqueda Primero el Mejor
Tutor4uDev
 
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
 
Metodos de ordenacion radix sort
Metodos de ordenacion radix sortMetodos de ordenacion radix sort
Metodos de ordenacion radix sort
tephyfree
 

Was ist angesagt? (20)

Algoritmos de Ordenamiento externo
Algoritmos de Ordenamiento externoAlgoritmos de Ordenamiento externo
Algoritmos de Ordenamiento externo
 
Programación 3: Grafos, representación y operaciones
Programación 3: Grafos, representación y operacionesProgramación 3: Grafos, representación y operaciones
Programación 3: Grafos, representación y operaciones
 
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
 
Reporte metodos de busqueda y ordenamiento
Reporte metodos de busqueda y ordenamientoReporte metodos de busqueda y ordenamiento
Reporte metodos de busqueda y ordenamiento
 
Memoria dinamica
Memoria dinamicaMemoria dinamica
Memoria dinamica
 
Búsqueda Primero el Mejor
Búsqueda Primero el MejorBúsqueda Primero el Mejor
Búsqueda Primero el Mejor
 
Memoria dinamica
Memoria dinamicaMemoria dinamica
Memoria dinamica
 
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.
 
Problema de las jarras
Problema de las jarrasProblema de las jarras
Problema de las jarras
 
Problema del barbero durmiente
Problema del barbero durmienteProblema del barbero durmiente
Problema del barbero durmiente
 
Metodos de ordenacion radix sort
Metodos de ordenacion radix sortMetodos de ordenacion radix sort
Metodos de ordenacion radix sort
 
Pilas y colas
Pilas y colasPilas y colas
Pilas y colas
 
Presentacion arbol-binario
Presentacion arbol-binarioPresentacion arbol-binario
Presentacion arbol-binario
 
Programación no lineal
Programación no linealProgramación no lineal
Programación no lineal
 
Memoria Estatica
Memoria EstaticaMemoria Estatica
Memoria Estatica
 
Arboles M-Way, 2-3 y 2-3-4
Arboles M-Way, 2-3 y 2-3-4Arboles M-Way, 2-3 y 2-3-4
Arboles M-Way, 2-3 y 2-3-4
 
Algoritmos de busqueda - hash truncamiento
Algoritmos de busqueda - hash truncamientoAlgoritmos de busqueda - hash truncamiento
Algoritmos de busqueda - hash truncamiento
 
Recursividad
RecursividadRecursividad
Recursividad
 
Listas, pilas y colas
Listas, pilas y colasListas, pilas y colas
Listas, pilas y colas
 
Colas en programacion
Colas en programacionColas en programacion
Colas en programacion
 

Andere mochten auch (8)

Arboles que diablos!!...
Arboles que diablos!!...Arboles que diablos!!...
Arboles que diablos!!...
 
Practica1unidad4benita
Practica1unidad4benitaPractica1unidad4benita
Practica1unidad4benita
 
Proyecto susana final
Proyecto susana finalProyecto susana final
Proyecto susana final
 
Evidencias practica uni 3
Evidencias practica uni 3Evidencias practica uni 3
Evidencias practica uni 3
 
Método rápido (quicksort) (1)
Método rápido (quicksort) (1)Método rápido (quicksort) (1)
Método rápido (quicksort) (1)
 
Administración y seguridad de redes: Portafolio de evidencias
Administración y seguridad de redes: Portafolio de evidenciasAdministración y seguridad de redes: Portafolio de evidencias
Administración y seguridad de redes: Portafolio de evidencias
 
Caracteristicas de los modelos de propagacion
Caracteristicas de los modelos de propagacionCaracteristicas de los modelos de propagacion
Caracteristicas de los modelos de propagacion
 
Comandos de configuracion de dispositivos cisco
Comandos de configuracion de dispositivos ciscoComandos de configuracion de dispositivos cisco
Comandos de configuracion de dispositivos cisco
 

Ähnlich wie Recursividad

recursividad EN PROGRAMACION ORIENTADA .pptx
recursividad EN PROGRAMACION ORIENTADA .pptxrecursividad EN PROGRAMACION ORIENTADA .pptx
recursividad EN PROGRAMACION ORIENTADA .pptx
juan gonzalez
 
Unidad III-Programación Modular-introducción al lenguaje programable.pdf
Unidad III-Programación Modular-introducción al lenguaje programable.pdfUnidad III-Programación Modular-introducción al lenguaje programable.pdf
Unidad III-Programación Modular-introducción al lenguaje programable.pdf
EDWINERNESTOMADRIDME
 

Ähnlich wie Recursividad (20)

Capítulo 3 Algoritmos recursivos.pdf
Capítulo 3 Algoritmos recursivos.pdfCapítulo 3 Algoritmos recursivos.pdf
Capítulo 3 Algoritmos recursivos.pdf
 
Recursividad2019
Recursividad2019Recursividad2019
Recursividad2019
 
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
 
La_Recursividad.pptx
La_Recursividad.pptxLa_Recursividad.pptx
La_Recursividad.pptx
 
Recursividad 100329105433-phpapp01
Recursividad 100329105433-phpapp01Recursividad 100329105433-phpapp01
Recursividad 100329105433-phpapp01
 
ESTRUCTURA DE DATOS
ESTRUCTURA DE DATOSESTRUCTURA DE DATOS
ESTRUCTURA DE DATOS
 
Estructura datos unidad-2_y_3
Estructura datos unidad-2_y_3Estructura datos unidad-2_y_3
Estructura datos unidad-2_y_3
 
Estructura datos unidad-2_y_3
Estructura datos unidad-2_y_3Estructura datos unidad-2_y_3
Estructura datos unidad-2_y_3
 
Recursividad en programación
Recursividad en programaciónRecursividad en programación
Recursividad en programación
 
Programas_Recursivos.pptx
Programas_Recursivos.pptxProgramas_Recursivos.pptx
Programas_Recursivos.pptx
 
Unidad III-Programación Modular-introducción al lenguaje programable.pdf
Unidad III-Programación Modular-introducción al lenguaje programable.pdfUnidad III-Programación Modular-introducción al lenguaje programable.pdf
Unidad III-Programación Modular-introducción al lenguaje programable.pdf
 
DIAPOSITIVAS DE LA UNIDAD 3
DIAPOSITIVAS DE LA UNIDAD 3DIAPOSITIVAS DE LA UNIDAD 3
DIAPOSITIVAS DE LA UNIDAD 3
 
Tarea 3
Tarea 3Tarea 3
Tarea 3
 
RECURSIVIDAD
RECURSIVIDADRECURSIVIDAD
RECURSIVIDAD
 
Unidad 2 & 3 estructura datos
Unidad 2 & 3 estructura datosUnidad 2 & 3 estructura datos
Unidad 2 & 3 estructura datos
 
Recursividad
RecursividadRecursividad
Recursividad
 
Recursividad
RecursividadRecursividad
Recursividad
 
Tarea 3
Tarea 3Tarea 3
Tarea 3
 

Mehr von TAtiizz Villalobos

Mapa conceptual unidad 1 benita
Mapa conceptual unidad 1 benitaMapa conceptual unidad 1 benita
Mapa conceptual unidad 1 benita
TAtiizz Villalobos
 

Mehr von TAtiizz Villalobos (20)

Cuadro sinoptico unidad 1
Cuadro sinoptico unidad 1Cuadro sinoptico unidad 1
Cuadro sinoptico unidad 1
 
Cuadro sinoptico unidad 1
Cuadro sinoptico unidad 1Cuadro sinoptico unidad 1
Cuadro sinoptico unidad 1
 
Unidad iii pilas y colas
Unidad iii pilas y colasUnidad iii pilas y colas
Unidad iii pilas y colas
 
Estructura de datos benita
Estructura de datos benitaEstructura de datos benita
Estructura de datos benita
 
Apuntes
ApuntesApuntes
Apuntes
 
Estructura de datos benita
Estructura de datos benitaEstructura de datos benita
Estructura de datos benita
 
Practicas susana todo unidad1
Practicas susana todo unidad1Practicas susana todo unidad1
Practicas susana todo unidad1
 
Tabla comparativa unidad1 benita
Tabla comparativa unidad1 benitaTabla comparativa unidad1 benita
Tabla comparativa unidad1 benita
 
Estructura de datos benita
Estructura de datos benitaEstructura de datos benita
Estructura de datos benita
 
Mapa conceptual unidad 1 benita
Mapa conceptual unidad 1 benitaMapa conceptual unidad 1 benita
Mapa conceptual unidad 1 benita
 
Tabla comparativa unidad1 benita
Tabla comparativa unidad1 benitaTabla comparativa unidad1 benita
Tabla comparativa unidad1 benita
 
Estructura de datos benita
Estructura de datos benitaEstructura de datos benita
Estructura de datos benita
 
Analisis del cap 8
Analisis del cap 8Analisis del cap 8
Analisis del cap 8
 
Practicas unidad 2 evidencias
Practicas unidad 2 evidenciasPracticas unidad 2 evidencias
Practicas unidad 2 evidencias
 
Practicas unidad 3 evidencias
Practicas unidad 3 evidenciasPracticas unidad 3 evidencias
Practicas unidad 3 evidencias
 
Arboles
ArbolesArboles
Arboles
 
Analisis del cap 8
Analisis del cap 8Analisis del cap 8
Analisis del cap 8
 
Practicas unidad 2 evidencias
Practicas unidad 2 evidenciasPracticas unidad 2 evidencias
Practicas unidad 2 evidencias
 
Tabla comparativa unidad1 benita
Tabla comparativa unidad1 benitaTabla comparativa unidad1 benita
Tabla comparativa unidad1 benita
 
Mapa conceptual unidad 1 benita
Mapa conceptual unidad 1 benitaMapa conceptual unidad 1 benita
Mapa conceptual unidad 1 benita
 

Kürzlich hochgeladen

EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
FagnerLisboa3
 
Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
AnnimoUno1
 

Kürzlich hochgeladen (15)

guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfRefrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptx
 
presentacion de PowerPoint de la fuente de poder.pptx
presentacion de PowerPoint de la fuente de poder.pptxpresentacion de PowerPoint de la fuente de poder.pptx
presentacion de PowerPoint de la fuente de poder.pptx
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdf
 
Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
 
Presentación de elementos de afilado con esmeril
Presentación de elementos de afilado con esmerilPresentación de elementos de afilado con esmeril
Presentación de elementos de afilado con esmeril
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 

Recursividad

  • 1. INSTITUTO TECNOLÓGICO DE SALINA CRUZ ASIGNATURA: ESTRUCTURA Y ORGANIZACIÓN DE DATOS UNIDAD 3 ESTRUCTURAS NO LINEALES PROFESORA: M.C SUSANA MÓNICA ROMÁN NÁJERA TEMA: REPORTE DE INVESTIGACIÓN DEL TEMA RECURSIVIDAD ALUMNA: VILLALOBOS PEREZ BENITA SEMESTRE: 3 GRUPO: E SALINACRUZ, OAXACA A 21 DE OCTUBRE 2014.
  • 2. ÍNDICE INTRODUCCIÓN ............................................................................................................................... 1 RECURSIVIDAD ................................................................................................................................ 2 MECÁNICA RECURSIÓN................................................................................................................ 5 TRANSFORMACIÓN ALGORITMOS RECURSIVOS A ITERATIVOS .................................... 6 RECURSIVIDAD EN DISEÑO......................................................................................................... 7 CONCLUSIÓN ................................................................................................................................... 8 OTRAS FUENTES CONSULTADAS ............................................................................................. 9
  • 3. 1 INTRODUCCIÓN Para seguir con la continuación de los temas referentes a la unidad 3 se estará hablando sobre el tema de recursividad más que nada se enfoca a que dicha función tiene varios ciclos repetitivos. Mediante la realización del siguiente trabajo se encontraran diferentes conceptos de recursividad, sus funciones, ventajas, desventajas para poder adquirir más conocimientos sobre el tema y comprender mejor cada concepto y relacionarla con la vida real. Esperando que este trabajo contenga la información necesaria para aclarar cualquier dudad del lector así como también de la persona que lo realiza.
  • 4. 2 RECURSIVIDAD Podemos definir la recursividad como un proceso que se define en términos de sí mismo. El concepto de recursión es difícil de precisar, pero existen ejemplos de la vida cotidiana que nos pueden servir para darnos una mejor idea acerca de lo que es recursividad. Un ejemplo de esto es cuando se toma una fotografía de una fotografía, o cuando en un programa de televisión un periodista transfiere el control a otro periodista que se encuentra en otra ciudad, y este a su vez le transfiere el control a otro. Otro ejemplo paradigmático seria el del triángulo de Sierpinski en el que cada triangulo está compuesto de otro más pequeños, compuestos a su vez de la misma estructura recursiva (de hecho en este caso se trata de una estructura fractal). Casos típicos de estructuras de datos definidas de manera recursiva son los árboles binarios y las listas enlazadas. La recursión se puede dar de dos formas:  DIRECTA. Este tipo de recursión se da cuando un subprograma se llama directamente a sí mismo.  INDIRECTA Sucede cuando un subprograma llama a un segundo subprograma, y este a su vez llama al primero, es decir el subproceso A llama al B, y el B invoca al subproceso A. La recursividad es un concepto fundamental en matemáticas y en computación. Es una alternativa diferente para implementar estructuras de repetición (ciclos). Los módulos se hacen llamadas recursivas. Se puede usar en toda situación en la cual la solución pueda ser expresada como una secuencia de movimientos, pasos o transformaciones gobernadas por un conjunto de reglas no ambiguas.
  • 5. 3 Las funciones recursivas se componen de: Caso base: una solución simple para un caso particular (puede haber más de un caso base). Caso recursivo: una solución que involucra volver a utilizar la función original, con parámetros que se acercan más al caso base. Los pasos que sigue el caso recursivo son los siguientes: 1. El procedimiento se llama a sí mismo 2. El problema se resuelve, tratando el mismo problema pero de tamaño menor 3. La manera en la cual el tamaño del problema disminuye asegura que el caso base eventualmente se alcanzará. Un objeto es recursivo cuando se define en función de sí mismo, es decir, interviene en su propia definición. La recursividad es la propiedad mediante la cual un subprograma o rutina puede llamarse a sí mismo. Utilizando la recursividad, la resolución de un problema se reduce a uno esencialmente igual pero algo menos complejo. Características que deben cumplir los problemas recursivos:  La recursividad debe terminar alguna vez: caso base  Cada nueva formulación estamos más cerca del caso final (o base). Factible de utilizar recursividad • Para simplificar el código. • Cuando la estructura de datos es recursiva ejemplo : árboles.
  • 6. 4 No factible utilizar recursividad • Cuando los métodos usen arreglos largos. • Cuando el método cambia de manera impredecible de campos. • Cuando las iteraciones sean la mejor opción. ¿POR QUÉ ESCRIBIR PROGRAMAS RECURSIVOS?  Son más cercanos a la descripción matemática.  Generalmente más fáciles de analizar  Se adaptan mejor a las estructuras de datos recursivas.  Los algoritmos recursivos ofrecen soluciones estructuradas, modulares y elegantemente simples. Los términos recurrencia, recursión o recursividad hacen referencia a una técnica de definición de conceptos (o de diseño de procesos) en la que el concepto definido (o el proceso diseñado) es usado en la propia definición (o diseño). Se dice que una función es recursiva cuando dicha función se define en términos de la misma función. Es importante recordar que no todas las funciones pueden llamarse a sí mismas, deben estar diseñadas especialmente para comportarse de manera recursiva, de otro modo dichas funciones podrían conducir a bucles infinitos, o a que el programa termine inadecuadamente. Por ejemplo, podríamos pensar en la creación de un algoritmo que produzca el resultado de un número factorial, la definición iterativa de dicho algoritmo seria la siguiente: int factorial (int n) { prod = 1; for (x = n; x > 0; x-- ) prod *= x;
  • 7. 5 return prod; } La definición iterativa es sencilla, pero no resulta tan intuitiva, en cambio, uno podría analizar más detalladamente el problema y generar una definición recursiva para una función factorial que podría resultar más intuitiva y sencilla de implementar: MECÁNICA RECURSIÓN. La mecánica de la recursividad está basada en una “pila”. Cuando un módulo recursivo se está ejecutando se crea en la memoria de la computadora una pila donde se almacenan los valores de los parámetros y de las variables locales del módulo. Si el módulo es función también se guarda en la pila el valor que adquiere la misma. Para cada llamada del módulo se almacenan en la pila los nuevos valores de los parámetros y de las variables locales, creándose un nuevo “registro de activación”. De tal forma que, la pila de recursión está formada por registros de activación. Al terminar una llamada al módulo, es decir, cuando se cumple la definición base, se libera (sale) el registro de activación que se encuentra en el tope de la pila. De esta forma es como puede “recordar” qué valores tenían los parámetros y las variables locales en la llamada anterior. Si observamos el proceso que seguimos para calcular 4! vemos que el valor de n fue cambiando conforme fuimos entrando en recursión y que al salir de recursión necesitábamos recordar el valor que tenía n en la expresión anterior. Esto quiere decir que los valores que fue adquiriendo n fueron entrando a la pila. No sólo debe recordar los valores que tenían los parámetros y las variables locales al realizarse la correspondiente llamada al módulo sino que también tiene que recordar qué instrucción debe realizar al terminar esa llamada. De tal forma que los registros de activación están compuestos básicamente de:
  • 8. 1. Instrucción a la que debe regresar el control una vez terminada la ejecución 6 actual del módulo. 2. Todos los parámetros y variables locales del módulo. 3. Si el módulo recursivo es una función el valor que adquiere la misma, ya que éste se debe regresar. Para hacer la representación de la pila de recursión numeramos las instrucciones a las que debe regresar el control una vez terminada la ejecución del módulo recursivo y estos valores son los que ponemos en la pila. TRANSFORMACIÓN ALGORITMOS RECURSIVOS A ITERATIVOS El concepto de recursividad va ligado al de repetición. Son recursivos aquellos algoritmos que, estando encapsulados dentro de una función, son llamados desde ella misma una y otra vez, en contraposición a los algoritmos iterativos, que hacen uso de ciclos while, do-while, for, etc. Algo es recursivo si se define en términos de sí mismo (cuando para definirse hace mención a sí mismo). Para que una definición recursiva sea válida, la referencia a sí misma debe ser relativamente más sencilla que el caso considerado. Ejemplo: definición de nº natural:  El N º 0 es natural  El Nº n es natural si n-1 lo es. En un algoritmo recursivo distinguimos como mínimo 2 partes: a) Caso trivial, base o de 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:
  • 9. Relaciona el resultado del algoritmo con resultados de casos más simples. Se hacen nuevas llamadas a la función, pero están más próximas al caso base. 7 RECURSIVIDAD EN DISEÑO Un procedimiento recursivo es aquel que se llama a si mismo, para poder funcionar tiene que tener una condición de salida que del número de veces que se va a llamar así mismo el procedimiento. La recursividad en diseño se refiere a la manera de cómo representar los procedimientos recursivos al momento de diseñar los programas. Dependiendo del método que utilicemos para diseñar la representación gráfica de la recursividad va a ser diferente sin embargo el procedimiento va a ser similar ya que el fin es el mismo poner una condición que nos diga si llamamos al método o que nos mande terminarlo. En un diagrama sería algo así: Figura 1 Recursividad
  • 10. 8 CONCLUSIÓN La recursividad es un concepto fundamental en matemáticas y en computación. Es una alternativa diferente para implementar estructuras de repetición (ciclos). Los módulos se hacen llamadas recursivas. Se puede usar en toda situación en la cual la solución pueda ser expresada como una secuencia de movimientos, pasos o transformaciones gobernadas por un conjunto de reglas además como se pudo notar la recursividad también se puede trabajar mediante pilas, así como también se mencionó algunos algoritmos para utilizar la recursividad el cual se utilizó la de calcular un numero factorial es un ejemplo más común que se encontró. Esperando que el trabajo contenga la información necesaria para asi cumplir con las características que se van a calificar.
  • 11. 9 OTRAS FUENTES CONSULTADAS Concepto de recursividad. Internet. En línea. Página consultada el día 16 de octubre de 2014. Disponible en: http://estructura-u1.blogspot.mx/2010/01/unidad-3- recursividad.html. Concepto de recursividad. Internet. En línea. Página consultada el día 16 de octubre de 2014. Disponible en: http://es.wikipedia.org/wiki/Recursi%C3%B3n. Concepto de recursividad. Internet. Fuera de línea. Página consultada el día 16 de octubre de 2014. Disponible en: http://webdelprofesor.ula.ve/nucleotrujillo/jalejandro/Prog2/Unidad3.pdf. Concepto de recursividad. Internet. En línea. Página consultada el día 16 de octubre de 2014. Disponible en: http://picandocodigo.net/2008/recursividad-en-programacion/. Concepto de recursividad. Internet. Fuera de línea. Página consultada el día 16 de octubre de 2014. Disponible en: http://www.uv.mx/personal/ocastillo/files/2011/04/Recursividad.pdf. Concepto de recursividad. Internet. En línea. Página consultada el día 16 de octubre de 2014. Disponible en: http://www.youtube.com/watch?v=heEjRbkvOog.