Temario. Tipos de recursión. Eficiencia y recursión
|
|
|
- Soledad de la Cruz Molina
- hace 7 años
- Vistas:
Transcripción
1 RECURSION
2 Temario Tipos de recursión Eficiencia y recursión
3 Tipos de RECURSION Según desde donde se realice el llamado recursivo: Directa: la función se llama a sí misma. Indirecta: la función A llama a la función B, y esta última llama a la función A
4 Tipos de RECURSION Según el número de llamadas recursivas generadas en tiempo de ejecución: Lineal o simple: se genera una única llamada interna. Ejemplo función de cálculo de potencia, No lineal o múltiple: se generan dos o mas llamadas internas. Ejemplo los árboles binarios.
5 Tipos de RECURSION Según el punto donde se realice el llamado recursivo: Final (Tail recursion): se genera una única llamada interna. Ejemplo función de mcd (máximo común divisor) No final (Nontail recursive function): se hace alguna operación al volver la llamada recursiva. Ejemplo: impresión inorder.
6 Ventajas de la RECURSION Solución de problemas de manera natural, sencilla, comprensible y elegante. Facilidad de comprobar y verificar que la solución es correcta. Principio de inducción matemática.
7 Desventajas de la RECURSION En general las soluciones recursivas son mas ineficientes con respecto al tiempo y al espacio que las soluciones iterativas. Esto ocurre debido a las llamadas recursivas a los módulos, la creación de variables dinámicas en la pila de activación, la duplicación de variables por parámetros por valor, etc. (OVERHEAD- sobrecarga) Algunas soluciones recursivas pueden repetir cálculos innecesariamente. Pro ejemplo: revisar soluciones del número de fibonacci. Qué ocurre en la solución clásica?
8 ANALISIS de RECURSION En general cualquier función recursiva se puede transformar en una solución iterativa. Ventaja de la solución iterativa: más eficiente en tiempo y espacio. Desventaja de la solución iterativa: en algunos casos puede ser muy complicada y a menudo suelen necesitarse estructuras de datos auxiliares. Si la eficiencia es un parámetro crítico y la función se va a ejecutar frecuentemente, conviene escribir una solución iterativa
9 ANALISIS de RECURSION La recursión puede simular el funcionamiento de una PILA abstracta. En que casos? Como ocurre esta simulación?
10 EFICIENCIA REPASO DE EFICIENCIA
11 EFICIENCIA Eficiencia Se define T(n) al tiempo de ejecución de un programa con una entrada de tamaño n. Las unidades de T(n) no se especifican. NOTACIÓN ASINTÓTICA Se utiliza para hacer referencia a la velocidad de crecimiento de los valores de una función. Nos interesa estudiar el comportamiento de los algoritmos para volúmenes de datos de gran tamaño. Por ejemplo: Si el tiempo de ejecución de un programa T(n) es O(n 2 ) significa que existen constantes C y n 0 tales que T(n) <= Cn 2 para n>=n 0
12 EFICIENCIA Eficiencia Se dice que T(n) es O(f(n)) si existen constantes positivas C y n 0 tales que T(n) <= C f(n) cuando n>= n 0. Cuando el tiempo de ejecución de un programa es de O(f(n)), se dice que tiene velocidad de crecimiento f(n). f(n) es una cota superior para la velocidad de crecimiento de T(n).
13 EFICIENCIA Eficiencia T(n) mseg Velocidad de crecimiento 4 O(n 3 ) 3 O(n 2 ) O(n) 1 2 O(n*log(n)) n
14 Eficiencia EFICIENCIA Algunas conclusiones Algunas condiciones en las cuales el tiempo de ejecución de un programa se puede ignorar en favor de otros factores: Si un programa se va a utilizar algunas veces, el costo de su escritura y depuración es el dominante. Si un programa se va a ejecutar sólo con entradas pequeñas, la velocidad de crecimiento puede ser menos importante que el factor constante.
15 EFICIENCIA Se tendrá en cuenta para una medida de eficiencia es el número de operaciones elementales que emplea el algoritmo. Una operación elemental utiliza un tiempo constante para su ejecución, independientemente del tipo de dato con el que trabaje. Se considera que cada operación elemental se ejecuta en una unidad de tiempo. Una operación elemental es una asignación, una comparación o bien una operación aritmética simple
16 Eficiencia Reglas Generales Regla 1: For Regla 2: For anidados Regla 3: sentencias consecutivas Regla 4: If / else Los comentarios y declaraciones no se consideran para el cálculo IMPORTANTE: Puede darse el caso que el algoritmo mas adecuado en cada momento dependa del tamaño de la entrada: Algoritmo1: f(n) = 4n -1 Algoritmo2: h(n) = 2n En estas situaciones hay que considerar cual es el algoritmo a aplicar teniendo en cuenta el tamaño de la entrada.
17 Ejemplo: cálculo de Eficiencia Cálculo del Tiempo de Ejecución i 3 Function sum ( n: integer ) : integer; var i, s_parcial : integer; n i=1 begin {1} s_parcial := 0; {2} for i := 1 to n do {3} s_parcial := s_parcial + i * i * i; {4} sum := s_parcial; end;
18 Eficiencia Las líneas {1} y {4} cuentan una unidad cada una, entonces tenemos 2 La línea {3} cuenta 4 unidades cada vez que se ejecuta, entonces 4 n (1 asignación, 1 suma y 2 productos) La línea {2} tiene una inicialización, testeo de i<=n e incremento de i, entonces 1 de la asignación, más (n+1) para todos los test y n para el incremento, entonces 2n + 2 T(N) ==> total = n + 2 n + 2 ==> 6 n + 4 = O(n)
19 Eficiencia - Ejemplos Consideremos el cálculo del mínimo m de tres números a, b y c. Hay varios caminos para obtenerlo: {camino 1} m := a; if b < m then m := b; if c < m then m := c; Peor de los casos, sumamos 5
20 Eficiencia - Ejemplos {camino 2} if a <= b then if a <= c then m := a else m := c else if b <= c then m := b else m := c Siempre suma 3 20
21 Eficiencia - Ejemplos {camino 3} if (a <= b ) and ( a<= c) then m := a; if (b <= a ) and ( b<= c) then m := b; if (c <= a ) and ( c<= b) then m := c; Se evalúan todas las condiciones, si no es short circuit, se suma 2 testeos por cada if (6 testeos) y 1 asignación. El peor de los casos es que sean todos iguales y se suma 3 de las 3 asignaciones, totaliza 9. 21
22 Eficiencia - Ejemplos {camino 4} if (a <= b) and (a<= c ) then m := a else if b <= c then m := b else m := c; ANALIZAR RELACION EFICIENCIA LINEAS DE CODIGO En el peor de los casos suma 4 y en el mejor 3. 22
23 Eficiencia Se puede mejorar la eficiencia de los programas, observando algunas guías simples relacionadas con la eficiencia del código. Un punto importante a tener en cuenta es no repetir cálculos innecesarios. Es decir, podemos escribir: t := x * x * x; y := 1/(t-1) + 1/(t-2) + 1/(t-3) + 1/(t-4) en lugar de y:=1/(x*x*x-1) + 1/(x*x*x-2) +1/(x*x*x-3) + 1/(x*x*x-4) 23
24 Eficiencia Cálculo del tiempo de ejecución en una solución modularizada Si se tiene un programa con módulos que no son recursivos, es posible calcular el tiempo de ejecución de los distintos procesos, uno a la vez, partiendo de aquellos que no llaman a otros. Debe haber al menos un módulo con esa característica. Después puede evaluarse el tiempo de ejecución de los procesos que llamaron a los módulos anteriores y así sucesivamente. 24
25 Cálculo de TIEMPOS de la RECURSION En el caso de los procesos recursivos se debe asociar a cada proceso/modulo recursivo una función desconocida de tiempo T (n), donde n mide el tamaño de los argumentos del proceso. Luego se puede obtener una recurrencia para T(n), es decir una ecuación para T(n) en función de T(k) para varios valores de k. Si la recursión es utilizada como reemplazo de un lazo iterativo el análisis de tiempo es relativamente fácil
26 Métodos para obtener la función de recurrencia 1. Suponer una función f(n) y usar la recurrencia para demostrar que T(n) = f(n). La prueba se hace sobre inducción sobre n. 2. Sustituir las recurrencias por su igualdad hasta llegar a cierta T(n 0 ) conocida 3. Usar soluciones generales para ciertas ecuaciones de recurrencia conocidas: Resolución de la ecuación característica.
27 T(n) es el tiempo de ejecución de Factorial(n) El tiempo de las líneas {1} y {2} es O(1) y para la línea {3} es O(1) + T(n-1). Se está suponiendo que la multiplicación de dos enteros es una operación de orden 1 Cálculo de TIEMPOS de la RECURSION Function Factorial (n: integer): integer; begin {1} if (n=0) or (n=1) {2} then Factorial := 1 Para ciertas constantes c y d: T(n) c + T(n-1) si n> 1 d si n<=1 {3} else Factoral:= n * Factorial (n-1); end;
28 Cálculo de TIEMPOS de la RECURSION (A) Para ciertas constantes c y d: T(n) c + T(n-1) si n> 1 d si n<=1 2) Reemplazamos a n por (n-1) 1) Si n > 2, desarrollamos T(n-1) porque hay un llamado recursivo (ver programa de factorial). 3) Queda: T(n-1) = c + T( n 1-1) T(n-1) = c + T( n 2) 4) Con lo cual puedo ahora reemplazar a T(n -1) con c + T(n-2) en (A), como c es una constante quedaría que T(n) = 2c + T(n-2)
29 Métodos para obtener la función de recurrencia Usaremos el método (2) para sustituir las recurrencias por su igualdad hasta llegar a cierta T(n 0 ) conocida, buscando siempre una cota superior.
30 RECURSION Link de consulta: r-pascal.pdf Ver capítulo 10. Para recursión
Complejidad de algoritmos recursivos
Tema 3. Complejidad de algoritmos recursivos 1. INTRODUCCIÓN... 1 CLASIFICACIÓN DE FUNCIONES RECURSIVAS... 1 DISEÑO DE FUNCIONES RECURSIVAS... 2 2. VENTAJAS E INCONVENIENTES DE LA RECURSIVIDAD... 4 3.
Algorítmica y Lenguajes de Programación. Eficiencia y notación asintótica (ii)
Algorítmica y Lenguajes de Programación Eficiencia y notación asintótica (ii) Eficiencia y notación asintótica. Análisis de algoritmos En la lección anterior el concepto de eficiencia asintótica. En ésta
UNIDAD 7 Recursividad Concepto. Algoritmos recursivos. Seguimiento de la recursión. Algunos métodos recursivos de búsqueda y ordenación: M-Sort y
Recursividad Concepto. Algoritmos recursivos. Seguimiento de la recursión. Algunos métodos recursivos de búsqueda y ordenación: M-Sort y Q-Sort. Comparación de eficiencia en métodos Iterativos vs recursivos
Análisis de algoritmos
Tema 05: no recursivos M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com [email protected] @edfrancom edgardoadrianfrancom 1 Contenido no recursivos La notación de Landau O La notación O Principio
Programación I Recursividad.
Programación I Recursividad http://proguno.unsl.edu.ar [email protected] Recursividad Técnica de resolución de problemas particulares. La definición de un concepto es recursiva si el concepto es definido
Universidad de Valladolid. Departamento de informática. Campus de Segovia. Estructura de datos Tema 1: Recursividad. Prof. Montserrat Serrano Montero
Universidad de Valladolid Departamento de informática Campus de Segovia Estructura de datos Tema 1: Recursividad Prof. Montserrat Serrano Montero ÍNDICE Conceptos básicos Ejemplos recursivos Recursividad
Algoritmos y Estructuras de Datos Curso 06/07. Ejercicios
6.1.(Clase) Un programa que utiliza la técnica divide y vencerás, divide un problema de tamaño n en a subproblemas de tamaño n/b. El tiempo g(n) de la resolución directa (caso base) se considerará constante.
Listas y Recursión. Taller de Álgebra I. Primer Cuatrimestre de 2015
Listas y Recursión Taller de Álgebra I Primer Cuatrimestre de 2015 Un nuevo tipo: Listas Tipo Lista Las listas pueden contener elementos de cualquier tipo (incluso listas) [1] :: [Integer] [1, 2] :: [Integer]
Departamento de Informática Universidad de Valladolid Campus de Segovia TEMA 1: RECURSIÓN
Departamento de Informática Universidad de Valladolid Campus de Segovia TEMA 1: RECURSIÓN ÍNDICE Definición Conceptos básicos Ejemplos recursivos Recursión mútua Recursión e iteración DEFINICIÓN Técnica
Tema 4.- Recursión e iteración
UNIVERSIDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR DE CÓRDOBA DEPARTAMENTO DE INFORMÁTICA Y ANÁLISIS NUMÉRICO PROGRAMACIÓN DECLARATIVA INGENIERÍA INFORMÁTICA ESPECIALIDAD DE COMPUTACIÓN CUARTO CURSO PRIMER
4.1 Definición. Se dice que algo es recursivo si se define en función de sí mismo o a sí mismo. Un objeto (problemas, estructuras de datos) es
Recursividad 4.1 Definición. Se dice que algo es recursivo si se define en función de sí mismo o a sí mismo. Un objeto (problemas, estructuras de datos) es recursivo si forma parte de sí mismo o interviene
Introducción al Análisis del Coste de Algoritmos
1/11 Introducción al Análisis del Coste de Algoritmos Josefina Sierra Santibáñez 7 de noviembre de 2017 2/11 Eficiencia de un Algoritmo Analizar un algoritmo significa, en el contexto de este curso, predecir
Estructura de Datos. Recursividad. Primer Semestre, Indice
Estructura de Datos Recursividad Prof.: Mauricio Solar Prof.: Lorna Figueroa Primer Semestre, 2 Indice Introducción Definición Condiciones para la Recursividad Tipos de Recursividad Aplicaciones Ejemplo
Notación Asintótica. Temas. Introducción Notación O Notación Omega Notación Theta. Análisis de Algoritmos
Notación Asintótica Análisis de Algoritmos Temas Introducción Notación O Notación Omega Notación Theta 1 Introducción Por qué el análisis de algoritmos? Determinar tiempos de respuesta (runtime) Determinar
NOTACIÓN O GRANDE. El análisis de algoritmos estima el consumo de recursos de un algoritmo.
NOTACIÓN O GRANDE El análisis de algoritmos estima el consumo de recursos de un algoritmo. Esto nos permite comparar los costos relativos de dos o más algoritmos para resolver el mismo problema. El análisis
Recursión. Capítulo 4
Recursión Capítulo 4 Introducción La recursión o recursividad es un concepto amplio, con muchas variantes, y difícil de precisar con pocas palabras.. Actividades Cotidianas; fotografía donde se observa
Estrategias de Diseño de Algoritmos
Estrategias de Diseño de Algoritmos Introducción A través de los años, los científicos de la computación han identificado diversas técnicas generales que a menudo producen algorit mos eficientes para la
Introducción al análisis de algoritmos
Estructura de Datos y Algoritmos Introducción al análisis de algoritmos 1. Eficiencia en tiempo de Ejecución Cuando resolvemos un problema nos vemos frecuentemente enfrentando una elección de programas,
Concepto de Recursión. Características de algoritmos recursivos. Ejemplos
RECURSION Temario Concepto de Recursión Características de algoritmos recursivos Ejemplos RECURSION Metodologías para resolver problemas: 1. Diseño Top Down 2. Recursión 3. Abstracción de Datos 4. Diseño
Algoritmos y Estructuras de Datos: Introducción a la Recursión de Programas. Guillermo Román Díez
Algoritmos y Estructuras de Datos: Introducción a la Recursión de Programas Guillermo Román Díez [email protected] Universidad Politécnica de Madrid Curso 2015-2016 Guillermo Román, UPM AED: Introducción
Programación 2. Lección 3. Introducción a la recursividad
Programación 2 Lección 3. Introducción a la recursividad 1 1. Definiciones recursivas Número natural y número entero Múltiplos de 7 Secuencia de datos Factorial de un número natural Sucesión de Fibonacci
Análisis y Diseño de Algoritmos. Complejidad Computacional
Análisis y Diseño de Algoritmos Complejidad Computacional Multiplicación Método Tradicional Método Russé Método Particiones Complejidad Computacional Tan pronto como una máquina análitica exista, será
Agradecimientos. Nota de los autores. 1 Problemas, algoritmos y programas 1
Prologo Agradecimientos Nota de los autores Índice general I III V VII 1 Problemas, algoritmos y programas 1 1.1 Programas y la actividad de la programación.................... 4 1.2 Lenguajes y modelos
1. Introducción al análisis de algoritmos
1. Introducción al análisis de algoritmos 1. Introducción al concepto de algoritmia 2. Eficiencia de un algoritmo 3. Notación asintótica 4. Reglas generales Bibliografía Brassard y Bratley, 97; capítulos
Estructuras de Datos y Algoritmos
Estructuras de Datos y Algoritmos Práctico 2: Evaluación de Algoritmos (Finalización: 03/09) Ingeniería en Computación - Ingeniería en Informática Año 2015 Ejercicio 1: Dados los siguientes vectores, correspondientes
Estructura de Datos. Complejidad de Algoritmos. Algoritmo. Algoritmo. Mauricio Solar Lorna Figueroa
Estructura de Datos Complejidad de Algoritmos Mauricio Solar Lorna Figueroa 2010 1 Algoritmo Definición: Un algoritmo es un conjunto finito de instrucciones que sirven para resolver un problema si fueron
Recursividad. Dept. Ciencias de la Computación e I.A. Universidad de Granada
TEMA Recursividad Dept. Ciencias de la Computación e I.A. Universidad de Granada Índice Introducción a la recursión Recursividad frente a iteración Eficiencia de los algoritmos recursivos Ejemplos y ejercicios
Tema 5- Diseño Recursivo y. Objetivos Principales. Bibliografía Básica
Tema 5- Diseño Recursivo y Eficiente Tema 5- Diseño Recursivo y Eficiente Germán Moltó Escuela Técnica Superior de Ingeniería Informática Universidad Politécnica de Valencia Índice general: 1. Introducción
Introducción a la Programación
0,25 puntos cada pregunta 1. Observa el siguiente esquema de código. Cuándo se ejecuta Instrucción4? IF Condición1 THEN Instrucción1 ELSE IF Condición2 THEN Instrucción2 ELSE IF Condición3 THEN Instrucción3;
Dra. Jessica Andrea Carballido
Dra. Jessica Andrea Carballido [email protected] Dpto. de Ciencias e Ingeniería de la Computación UNIVERSIDAD NACIONAL DEL SUR Problema Diseño de la solución Dividir y conquistar Implementación de los
Análisis de Algoritmos
Análisis de Algoritmos IIC1253 IIC1253 Análisis de Algoritmos 1 / 36 Complejidad de un algoritmo Un algoritmo A puede ser pensado como una función A : {0,1} {0,1} Qué tan general es esta representación?
Programación II Recursividad Dr. Mario Rossainz López
5. RECURSIVIDAD 5.1. Introducción La recursividad es una técnica en la que una función o método se hace llamadas a sí misma en el proceso de la realización de sus tareas. La recursividad da al programador
Metodología de la Programación II. Recursividad
Metodología de la Programación II Recursividad Objetivos Entender el concepto de recursividad. Conocer los fundamentos del diseño de algoritmos recursivos. Comprender la ejecución de algoritmos recursivos.
La recursividad forma parte del repertorio para resolver problemas en Computación y es de los métodos más poderosos y usados.
RECURSIVIDAD La recursividad forma parte del repertorio para resolver problemas en Computación y es de los métodos más poderosos y usados. Los algoritmos recursivos ofrecen soluciones estructuradas, modulares
La eficiencia de los programas
La eficiencia de los programas Jordi Linares Pellicer EPSA-DSIC Índice General 1 Introducción... 2 2 El coste temporal y espacial de los programas... 2 2.1 El coste temporal medido en función de tiempos
Qué es la recursividad?
Recursividad 1 Ejemplo Matrushka La Matrushka es una artesanía tradicional rusa. Es una muñeca de madera que contiene otra muñeca más pequeña dentro de sí. Esta muñeca, también contiene otra muñeca dentro.
Análisis y Diseño de Algoritmos
Análisis y Diseño de Algoritmos Notación Asintótica DR. JESÚS A. GONZÁLEZ BERNAL CIENCIAS COMPUTACIONALES INAOE Introducción Por qué el análisis de algoritmos? Determinar tiempos de respuesta (runtime)
Tema 7: Recursividad
Tema 7: Recursividad Objetivos: en este tema estudiaremos funciones recursivas; esto es, funciones que se invocan a sí mismas. Estas funciones son equivalentes a estructuras tipo bucle pero permiten especificar
Recursividad Definición
Recursividad Definición Un procedimiento o función se dice recursivo si durante su ejecución se invoca directa o indirectamente a sí mismo. Esta invocación depende al menos de una condición que actúa como
Recurrencias y cómo resolverlas
Recurrencias y cómo resolverlas Algoritmos y Estructuras de Datos II Departamento de Computación, Facultad de Ciencias Exactas y Naturales, Universidad de Buenos Aires 8 de septiembre de 2017 Algo2 (DC-FCEyN-UBA)
Programación II. Mario Aldea Rivas Programación II 04/04/11 1. Mario Aldea Rivas Programación II 04/04/11 2
Programación II Bloque temático 1. Lenguajes de programación Bloque temático 2. Metodología de programación Bloque temático 3. Esquemas algorítmicos Tema 5. Algoritmos voraces, heurísticos y aproximados
Análisis de algoritmos.
Análisis de algoritmos. - Introducción. - Notaciones asintóticas. - Ecuaciones de recurrencia. - Ejemplos. 1 Introducción Algoritmo: Conjunto de reglas para resolver un problema. Su ejecución requiere
1. 1. Introducción al concepto de algoritmia
1. Introducción al análisis de algoritmos 1. Introducción al concepto de algoritmia 2. Eficiencia de un algoritmo 3. Notación asintótica 4. Reglas generales Bibliografía Básica: Aho, Hopcroft y Ullman,
Tema 2 Fundamentos de Complejidad Algorítmica
Tema 2 Fundamentos de Complejidad Algorítmica Pablo Sánchez Dpto. Matemáticas, Estadística y Computación Universidad de Cantabria Santander (Cantabria, España) [email protected] Pablo Sánchez (MATESCO)
Algoritmos y Complejidad
Algoritmos y Complejidad Introducción Pablo R. Fillottrani Depto. Ciencias e Ingeniería de la Computación Universidad Nacional del Sur Primer Cuatrimestre 2017 Introducción Algoritmos y Algoritmia Problemas
Introducción. Algoritmos y Complejidad. Algoritmos y Algoritmia. Introducción. Problemas e instancias. Pablo R. Fillottrani
Introducción Introducción Pablo R. Fillottrani Depto. Ciencias e Ingeniería de la Computación Universidad Nacional del Sur Algoritmos y Algoritmia Problemas e instancias Primer Cuatrimestre 2014 Algoritmos
Algoritmos Secuenciales y Recursivos
Algoritmos Secuenciales y Recursivos M. Andrea Rodríguez-Tastets Ayudante: Erick Elejalde Universidad de Concepción,Chile www.inf.udec.cl\ andrea [email protected] I Semestre - 2014 1/45 Análisis secuencial
UNIDAD IV Programación Funcional. Lic. Jesús Germán Andrés PAUTSCH - FCEQyN - UNaM
UNIDAD IV Programación Funcional Porqué? 2 Introducción Porque aprender programación funcional? - Recursión - Abstracción funcional - Funciones de primer orden Estos conceptos se han incorporado en la
Tema 01: Fundamentos del Análisis Asintótico de Algoritmos
Tema 01: Fundamentos del Análisis Asintótico de Algoritmos Noviembre, 2003 CS0218: Algoritmos y Programación II Introducción En Ciencias de la Computación se presenta con frecuencia la situación de analizar
Programación 2. Lección 9. Caracterización asintótica de la eficiencia de algoritmos recursivos
Programación 2 Lección 9. Caracterización asintótica de la eficiencia de algoritmos recursivos 1 1. Eficiencia y ecuaciones recurrentes 2. Resolución de recurrencias lineales de coeficientes constantes
Aritmética en Haskell
Aritmética en Haskell Taller de Álgebra I Primer cuatrimestre de 2014 Algoritmo de división Para obtener el cociente y resto entre dos números enteros, tenemos las funciones div y mod, respectivamente.
Algoritmos Iterativos de Búsqueda y Ordenación y sus tiempos
Estructura de Datos y Algoritmos Algoritmos Iterativos de Búsqueda y Ordenación y sus tiempos 1. Algorimos de ordenación Discutiremos el problema de ordenar un array de elementos. A los efectos de simplificar
Ejercicios sobre recursividad
Ejercicios sobre recursividad 11 de febrero de 2003 1. Implementa una función recursiva que devuelva la suma de los dígitos de un número natural, que se le pasa por parámetro. 2. Implementa una función
Capítulo 3 Algoritmos recursivos
Capítulo 3 Algoritmos recursivos Los algoritmos recursivos se basan en la metodología de llamar repetidamente la propia función en que están definidos, y son de gran utilidad en multitud de campos en la
Algoritmos en teoría de números
Algoritmos en teoría de números IIC2283 IIC2283 Algoritmos en teoría de números 1 / 92 Para recordar: aritmética modular Dados dos números a, b Z, si b > 0 entonces existen α, β Z tales que 0 β < b y a
Algoritmos y Estructuras de Datos Tema 2: Diseño de Algoritmos
Algoritmos y Estructuras de Datos Tema 2: Diseño de Algoritmos 1! 1. Algoritmos recursivos " 1.1 Algoritmos recursivos. Recursión simple " 1.2 Algoritmos con vuelta atrás y ejemplos! 2. Complejidad de
Tema 5- Diseño Recursivo y Eficiente. Tema 5- Diseño Recursivo y. Descomposición recursiva ascendente de un vector. Etapas del diseño recursivo
Tema 5- Diseño Recursivo y Eficiente Tema 5- Diseño Recursivo y Eficiente Germán Moltó Escuela Técnica Superior de Ingeniería Informática Universidad Politécnica de Valencia Índice general: 1. Introducción
ARBOLES BINARIOS ORDENADOS. REPRESENTACIÓN Y OPERACIONES
ARBOLES BINARIOS ORDENADOS. REPRESENTACIÓN Y OPERACIONES TEMAS Recorrido de un árbol Máximo y mínimo Búsqueda de un elemento Borrado de un nodo 3 Características ARBOLES - CONCEPTOS Cada elemento del árbol
Parte I: El computador y el proceso de programación
Parte I: El computador y el proceso de programación 1.Introducción a los computadores y su programación 2. Introducción al análisis y diseño de algoritmos 3. Introducción al análisis y diseño de programas
Unidad 2 Recursividad. 2.1 Definición 2.2 Procedimientos Recursivos 2.3 Ejemplos de Casos Recursivos
Unidad 2 Recursividad 2.1 Definición 2.2 Procedimientos Recursivos 2.3 Ejemplos de Casos Recursivos 2.1 Definición de Recursividad La Recursividad es una técnica de programación muy poderosa usada ampliamente
Programación 2. Lección 8. Caracterización asintótica de la eficiencia de un algoritmo
Programación 2 Lección 8. Caracterización asintótica de la eficiencia de un algoritmo 1 1. Funciones de coste de un algoritmo 2. Caracterización asintótica del coste Notación O Consecuencias prácticas
Algorítmica y Lenguajes de Programación. Eficiencia y notación asintótica (i)
Algorítmica y Lenguajes de Programación Eficiencia y notación asintótica (i) Eficiencia y notación asintótica. Introducción Para resolver un problema pueden existir varios algoritmos. Por tanto, es lógico
Estructuras de Datos y de la Información Ingeniería Técnica en Informática de Gestión. Curso 2007/2008 Ejercicios del Tema 2
Estructuras de Datos y de la Información Ingeniería Técnica en Informática de Gestión. Curso 2007/2008 Ejercicios del Tema 2 Diseño de algoritmos recursivos 1. Dado un vector de enteros de longitud N,
Unidad 2 Recursividad. 2.1 Definición 2.2 Procedimientos Recursivos 2.3 Ejemplos de Casos Recursivos
Unidad 2 Recursividad 2.1 Definición 2.2 Procedimientos Recursivos 2.3 Ejemplos de Casos Recursivos 2.1 Definición de Recursividad La Recursividad es una técnica de programación muy poderosa usada ampliamente
Operadores y Expresiones
Operadores y Expresiones Los programas Java constan de datos, sentencias de programas y expresiones. Una expresión es normalmente, una ecuación matemática, tal como 3 * x + 5 * z. En esta expresión, los
Diseño y Análisis de Algoritmos
1. Recursividad 2. "Dividir para Reinar" 3. Recursividad y Tabulación (Programación Dinámica) 4. Métodos Matemáticos Funciones discretas Notación O Ecuaciones de recurrencia 5. Casos de Estudio Breve descripción
UNIVERSIDAD DE LOS ANDES NUCLEO UNIVERSITARIO RAFAEL RANGEL (NURR) DEPARTAMENTO DE FISICA Y MATEMATICA AREA COMPUTACION TRUJILLO EDO.
UNIVERSIDAD DE LOS ANDES NUCLEO UNIVERSITARIO RAFAEL RANGEL (NURR) DEPARTAMENTO DE FISICA Y MATEMATICA AREA COMPUTACION TRUJILLO EDO. TRUJILLO Recursividad: La recursividad es una técnica de programación
RECURSIVIDAD. Prof. Ing. M.Sc. Fulbia Torres
ESTRUCTURAS DE DATOS 2006 Prof. UNIDAD II ESTRUCTURAS DE DATOS RECURSIVIDAD Definición. Estado base. Estado general. Ejemplos. Ejercicios. DEFINICIÓN Es una técnica de programación muy potente que permite
Análisis de algoritmos. Recursividad
Análisis de algoritmos Recursividad 1 Matrushka La Matrushka es una artesanía tradicional rusa. Es una muñeca de madera que contiene otra muñeca más pequeña dentro de sí. Ésta muñeca, también contiene
Programación Orientada a Objetos Sentencias Java Parte I Ing. Julio Ernesto Carreño Vargas MsC.
Sentencias Java Parte I Ing. Julio Ernesto Carreño Vargas MsC. Variables Conceptos de Memoria Una variable es un espacio en la memoria del PC Cada variable tiene un nombre, un tipo, un tamaño y un valor
dit UPM Tema 1: Algoritmos /complejidad /java Análisis y diseño de software José A. Mañas
Análisis y diseño de software dit UPM Tema 1: Algoritmos /complejidad /java José A. Mañas http://jungla.dit.upm.es/~pepe/doc/adsw/index.html 21.2.2018 referencias http://www.dit.upm.es/~pepe/doc/adsw/
Carlos A. Rivera-Morales. Precálculo 2
y Carlos A. Rivera-Morales Precálculo 2 Introducción a y Notación d Tabla de Contenido 1 Definición Sumas Parciales Introducción a y Notación d Tabla de Contenido 1 Definición Sumas Parciales 2 Introducción
Análisis de Algoritmos
Análisis de Algoritmos Amalia Duch Barcelona, marzo de 2007 Índice 1. Costes en tiempo y en espacio 1 2. Coste en los casos mejor, promedio y peor 3 3. Notación asintótica 4 4. Coste de los algoritmos
6. Estructuras básicas de control 1. Pseudocódigo
6. Estructuras básicas de control 1 Acciones Pseudocódigo Slide 1 Estructuras de control Secuencia Selección simple (si... entonces... ) doble (si... entonces... si no... ) múltiple (según el caso... )
Manos a la obra: Recursión, división y listas
Manos a la obra: Recursión, división y listas Taller de Álgebra I Cuatrimestre de verano de 2015 Calentando motores La clase pasada vimos ejemplos de definiciones recursivas. Hoy vamos a continuar con
Tema 3.2: Eficiencia de algoritmos recursivos. Diseño y Análisis de Algoritmos
Diseño y Análisis de Algoritmos Contenidos Contenidos 1 Introducción 2 3 Método general para resolución de relaciones de recurrencia URJC DAA 2 / 37 Introducción Análisis de algoritmos recursivos La matemática
Capítulo 4. Control de flujo. Continuar
Capítulo 4 Control de flujo Continuar Introducción El control de flujo permite encausar a la computadora sobre la ruta que debe seguir al momento de la ejecución de un programa, para ello se apoya en las
