2.1 Recursividad El hecho de que una función pueda llamarse a sí misma.

Slides:



Advertisements
Presentaciones similares
Relaciones de recurrencia
Advertisements

INTELIGENCIA ARTIFICIAL
Complejidad Computacional
Diseño y análisis de algoritmos
Diseño y análisis de algoritmos
ESTRUCTURA DE DATOS Unidad 01 RECURSIVIDAD.
Estructura de Datos Unidad 4. Recursividad Dra. María Lucía Barrón Estrada Enero-Junio 2007.
Programación II Recursividad
Introducción a los Algoritmos
¿ Que es la complejidad de un algoritmo ?
Funciones. Programación, Algoritmos y Estructuras de Datos.
Estructuras de Control
KRIGING.
1.3 Programación modular. Subprogramas.
UNIVERSIDAD LATINA (UNILA) IV. IMPLANTACION DE ALGORITMOS.
Traducción dirigida por la Sintaxis
Curso de Programación I Parte III
Investigación Operativa
UNIDAD I. INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS EN JAVA.
DEFINICIONES Y TERMINOLOGÍA
Recursión Se dice que un método es recursivo si forma parte de sí mismo o se define en función de sí mismo. La recursión es un medio particularmente poderoso.
Tema 7: Polimorfismo Antonio J. Sierra. Índice Introducción. Sobrecarga de métodos. Objetos como parámetros. Paso de argumentos. Devolución de objetos.
IINTRODUCCION A LA CIENCIA DE LA COMPUTACION Y A LA PROGRAMACION
ANALISIS SINTACTICO El análisis gramatical es la tarea de determinar la sintaxis, o estructura, de un programa. Por esta razón también se le conoce como.
Teoría de lenguajes y compiladores
Arboles Binarios de expresiones
PROGRAMACIÓN LÓGICA.
ESTRUCTURAS DE CONTROL
Analisis y Diseño de Algoritmos Tema: Grafos 3ra Parte
Ecuaciones de recurrencia
Matemáticas para Ciencias de la Computación MCC3182 Profesor: Claudio Gutiérrez Soto Página Web:
EL PODER DE SOLVER.
Análisis y Diseño de Algoritmos. Propiedades : f ( n )  O ( f ( n ) ) a ) O ( f ( n ) )  O ( g ( n ) )  f ( n )  g ( n )
Fundamentos de programación

Algoritmos.
Estructura de Datos y Algoritmos

M.S.C. Ivette Hernández Dávila
PROGRAMACIÓN PROCEDIMENTAL
Tema 6. Conceptos básicos de programación (Repaso) Prof. María Alejandra Quintero Informática Año 2013.
Material de apoyo Unidad 4 Estructura de datos
Análisis de algoritmos
Recurrencia Programación II de enero de 2009.
UNIDAD 2. ALGORITMOS Y ESTRUCTURAS DE DATOS.
EXPRESIONES Y SENTENCIAS
Universidad Autónoma San Francisco CARRERA PROFESIONAL: Lengua, Traducción e Interpretación Asignatura: MATEMÁTICA Tema: “SISTEMA FORMAL”
MATEMATICAS COMPETENCIAS MATEMATICAS
Números reales En este capítulo trataremos algunas cuestiones de gran interés relacionadas fundamentalmente con el conjunto de los números reales. Nos.
ALGORITMOS taller.
Recursividad Un objeto se dice que es recursivo si él mismo forma parte de su definición. Ejemplos de objetos recursivos: Una locomotora es un tren Un.
Departamento de Sistemas Informáticos y Programación Universidad Complutense de Madrid Bloque 2: Divide y Vencerás Unidad 1: Nociones básicas.
Conceptos Avanzados de Programación
TEMA 5: El problema del flujo con costo mínimo
Programación I Técnico Universitario en Web Dpto. de Informática FCFMyN - UNSL -10-
Oscar Bedoya. Edificio 331, 2º piso, E.I.S.C. Estructuras de datos y algoritmos.
ALGORITMO QUE ES ??.
Unidad V Recursión. Objetivos del Aprendizaje Explicar el concepto de recursión. Discutir las diferentes condiciones que deben ser satisfechas para que.
Conalep Coacalco Algoritmos Recursivos
Introducción a los TADs
* Cuando nos permite desarrollar un programa que necesitamos para tomar un conjunto de buenas prácticas para hacer eso. Esto se debe a que podemos ahorrar.
Inducción y Recursión Matemáticas Discretas L. Enrique Sucar INAOE.
Soluciones en Serie de Ecuaciones Lineales
U11: Recursividad Otra manera de hacer bucles Dicen algunos pedagogos que conceptualmente mas sencilla.
PROGRAMACION DE APLICACIONES EN MEMORIA DEL COMPUTADOR = ALGORITMOS Y ESTRUCTURAS DE DATOS.
Solución a Ecuaciones de Recurrencia Dr. Rogelio Dávila Pérez División de Posgrado Universidad Autónoma de Guadalajara
INFORMÁTICA II TEMA: DISEÑA Y ELABORA ALGORITMOS DOCENTE: MARÍA DOLORES GARCÍA PONCE CAMPUS TONALÁ JALISCO.
La programación modular es un paradigma de programación que consiste en dividir un programa en módulos o subprogramas con el fin de hacerlo más legible.
Recursividad.
LE, EI, Profesor Ramón Castro Liceaga UNIVERSIDAD LATINA (UNILA) IV. IMPLANTACION DE ALGORITMOS.
Transcripción de la presentación:

2.1 Recursividad El hecho de que una función pueda llamarse a sí misma

Una acción es recursiva cuando se define en función de sí misma. Las estructuras de datos recursivas sirven para construir estructuras dinámicas y complejas tales como las pilas, árboles y grafos.

Definición: Un algoritmo se dice que es recursivo cuando contiene en su definición una o más llamadas a si mismo. Todo algoritmo recursivo tendrá al menos una instrucción alternativa que contemplará dos casos bien diferenciados: ƒ Caso directo (o caso base): Es el caso en el cual el problema tiene una solución directa. Es el último caso que se ejecuta en la recursión. ƒ Caso recursivo: Es donde se relaciona el resultado del algoritmo con resultados de casos más simples. Estos casos más simples corresponderán con las llamadas recursivas. La condición de la instrucción alternativa que selecciona el caso directo se denomina condición de parada.

Ejemplo: Función factorial function factorial ($natural) { // This guarantees that the function will return 1 (even with 0 as argument) $result = 1; if ($natural > 0) { // Here we're applying the second formula: n * (n - 1)! $result = $natural * factorial(($natural - 1)); } // return the acumulated result return $result; Ejecutar Factoriales.class

El proceso de ejecución de un subprograma recursivo consiste en una cadena de generación de llamadas (suspendiéndose los restantes cálculos) y reanudación de los mismos al término de la ejecución de las llamadas

El concepto de recursión aparece en varias situaciones de la vida cotidiana, aunque en muchas no sabemos que estamos en presencia de este concepto, por ejemplo, sacar fotocopias de fotocopias, tomar una fotografía a otra fotografía Un razonamiento recursivo tiene dos partes: La base. No es recursiva y es el punto tanto de partida como de terminación de la definición La regla recursiva de construcción.

Entonces: Base: La secuenciación, iteración condicional y selección son estructuras válidas de control que pueden ser consideradas como enunciados. Regla recursiva: Las estructuras de control que se pueden formar combinando de manera válida la secuenciación iteración condicional y selección también son válidos. Un conjunto de objetos está definido recursivamente siempre que: (B) algunos elementos del conjunto se especifican explícitamente (R) el resto de los elementos del conjunto se definen en términos de los elementos ya definidos, donde (B) se llama base (R) se llama cláusula recursiva

Observaciones: 1. El procedimiento se llama a si mismo 2. El problema se resuelve, resolviendo 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á. Aplicaciones La recursividad es un método poderoso usado en inteligencia artificial, su poder es que algunos conceptos complejos pueden expresarse en una forma simple. Las fórmulas recursivas pueden aplicarse a situaciones tales como prueba de teoremas, solución de problemas combinatorios, algunos acertijos, etc.

Cuando la definición de un subprograma sólo contiene una llamada recursiva, entonces se dice que la recursividad es lineal. Si es mas de una llamada recursiva, entonces se dice que la recursividad es múltiple.