Análisis de algoritmos
|
|
|
- José Ramón Lucero Rivero
- hace 7 años
- Vistas:
Transcripción
1 Tema 05: no recursivos M. en C. Edgardo Adrián Franco Martínez edgardoadrianfrancom 1
2 Contenido no recursivos La notación de Landau O La notación O Principio de invarianza del análisis asintótico Reglas prácticas del análisis de algoritmos Ordenes más comunes de los algoritmos Comportamiento de las funciones Análisis por bloques de algoritmos iterativos Regla 1: Secuencia de instrucciones Regla 2: Decisiones Regla 3: Ciclos Consideraciones especiales Logaritmos Propiedades de los logaritmos Ejemplos Ejemplo 01: Ordenamiento por intercambio Ejemplo 02: Multiplicación de matrices de n x n Ejemplo 03: Algoritmo de Horner Ejemplo 04: Fibonacci (Iterativo) Ejemplo 05: Búsqueda binaria 2
3 no recursivos El análisis de complejidad de los algoritmos no recursivos (iterativos) se realiza bajo los principios del peor caso y generalmente devolverá la cota superior ajustada del orden de este (O). En principio se considera válido cuando solo se desea obtener una cota para valores grandes de n, basándose en que se cumple el principio de invarianza del análisis asintótico. Para los algoritmos iterativos es únicamente necesario conocer los órdenes de complejidad O de las tres estructuras de control que todo algoritmo iterativo puede emplear. 3
4 La notación de Landau (O) Se dice que la función f(n) es de orden O g(n) [O(g(n))], si existen constantes positivas c y n 0 tales que f n c g n cuando n n 0 Ejemplos: n+5 es O(n) pues n+5 2n para toda n 5 (n+1) 2 es O(n 2 ) pues (n+1) 2 4n 2 para n 1 (n+1) 2 NO es O(n) pues para cualquier c > 1 no se cumple que (n+1) 2 c*n 4
5 La notación O La notación O proporciona una cota superior para la tasa de crecimiento de una función. La siguiente tabla muestra la relación asintótica de la notación de orden O. f(n) es O(g(n)) g(n) es O(f(n)) g(n) crece más Sí No f(n) crece más No Sí Igual crecimiento Sí Sí 5
6 Principio de invarianza del análisis asintótico Cambios en el entorno HW o SW afectan a factores constantes pero no al orden de complejidad O(f(n)) El análisis de la eficiencia es asintótico sólo es válido para tamaños de problema suficientemente grandes lo que hace valido el principio de invarianza. Dos implementaciones de un mismo algoritmo no diferirán más que en una constante multiplicativa Si f 1 (n) y f 2 (n) son los tiempos consumidos por dos implementaciones de un mismo algoritmo, se verifica que: Ǝ c, d R, f 1 (n) c f 2 (n) f 2 (n) d f 1 (n) 6
7 Reglas prácticas del análisis de algoritmos Operaciones primitivas: tienen complejidad constante O(1) Secuencia de instrucciones: máximo de la complejidad de cada instrucción (regla de la suma). Condiciones simples: operaciones necesarias para evaluar la condición más las requeridas para ejecutar la consecuencia (peor caso). Condiciones alternativas: operaciones necesarias para evaluar la condición más las operaciones requeridas para ejecutar el mayor número de operaciones de las consecuencias (peor caso). 7
8 Bucle con iteraciones fijas: multiplicar el número de iteraciones por la complejidad del cuerpo (regla del producto). Bucle con iteraciones variables: Igual pero poniéndose en el peor caso (ejecutar el mayor número de iteraciones posible). Llamadas a subprogramas, funciones o métodos: Operaciones de asignación de cada parámetro más las operaciones de ejecución del cuerpo, más el número de operaciones del retorno. 8
9 Ordenes más comunes de los algoritmos O(1) O(n) O(n 2 ) O(n 3 ) O (n m ) O(log(n)) O(nlog(n)) O(m n ) O(n!) Constante Lineal Cuadrático Cúbico Polinomial Logarítmico nlog (n) exponencial factorial 9
10 Comportamiento de las funciones 10
11 Análisis por bloques de algoritmos iterativos El análisis de complejidad por bloques proporciona un importante medio para hacer un análisis más dinámico, que se basa principalmente en el conocimiento del orden de los bloques de instrucciones. Un bloque de instrucciones puede ser un algoritmo del cual conocemos su complejidad computacional. Para determinar el orden de un bloque, es necesario tener en mente el orden de las estructuras de control más usuales. O(g 1 (n)) O(g 2 (n)) 11 O(g 3 (n))
12 El análisis por bloques implica el análisis de: 1. Secuencias de instrucciones 2. Condicionales 3. Ciclos O(g 1 (n)) O(g 2 (n)) O(g 1 (n)) O(g(n)) O(g 3 (n)) O(g 2 (n)) 12
13 Regla 1: Secuencia de instrucciones O(g 1 (n)) O(g 2 (n)) O(g 3 (n)) O(g m (n)) O( mayor(g 1 (n), g 2 (n),, g m (n) ) Ejemplo: Una secuencia de 3 ciclos: Ciclo 1 = O(n) Ciclo 2 = O(log n) Ciclo 3 = O(n 2 ) Tendrá como orden total O(n 2 ). 13
14 Regla 2: Decisiones O(g 2 (n)) O(g 1 (n)) O( mayor(g 1 (n), g 2 (n)) ) Ejemplo: Una decisión con: Bloque verdadero= O(n log n) Bloque falso= O(log n) Tendrá como orden total O(n log n). 14
15 Regla 3: Ciclos O(g(n)) Se repite m veces O( m * g(n) ) Ejemplo: Un ciclo cuya instrucción: Tiene un O(log n) Se repite n/2 veces Tendrá como orden total O(½ n log n) = O(n log n). 15
16 Consideraciones especiales En decisiones y ciclos anidados: Analizar el código desde la instrucción más interna hacia el más externa. Tips para los ciclos: Normalmente cuál es el orden de la instrucción interna? Si la variable de control se incrementa o decremento con un valor constante: Orden LINEAL. Si la variable de control se multiplica o divide por un valor constante: Orden LOGARÍTIMICO. 16
17 Ejemplo 01: Ordenamiento por intercambio for (int i=1; i<n; i++) for (int j=i+1; j<=n;j++) if (a[ j ] < a[ i ]) intercambia(a[ i ], a[ j ]); O( ) 1 O( 1 ) Regla 2: Decisiones = mayor de las 2 ramas 17
18 for (int i=1; i<n; i++) Peor caso: se repite n-1 veces for (int j=i+1; j<=n;j++) if (a[ j ] < a[ i ]) intercambia(a[ i ], a[ j ]); O( 1 ) n O( ) Regla 3: Ciclos = # veces * orden de la instrucción interna 18 Complejidad computacional (Edgardo A. Franco)
19 Se repite n-1 veces for (int i=1; i<n; i++) for (int j=i+1; j<=n;j++) if (a[ j ] < a[ i ]) intercambia(a[ i ], a[ j ]); O( n ) O( n 2 ) Regla 3: Ciclos = # veces * orden de la instrucción interna 19
20 Análisis espacial ff n = eeeeeee dd a ff(n) = n ee O(n)
21 Ejemplo 02: Multiplicación de matrices de n x n a 11 a 12 a 1n a 21 a 22 a 2n a n1 a n2 a nn X b 11 b 12 b 1n b 21 b 22 b 2n b n1 b n2 b nn = c 11 c 12 c 1n c 21 c 22 c 2n c n1 c n2 c nn c 11 = a 11 *b 11 +a 12 *b a 1n *b n1 c 12 = a 11 *b 12 +a 12 *b a 1n *b n2 c 21 = a 21 *b 11 +a 22 *b a 2n *b n1 c nn = a n1 *b 1n +a n2 *b 2n + + a nn *b nn n c ij = Σ a ik b kj k=1 21
22 O( n 3 ) for i = 1 to n do O( n 2 ) for j = 1 to n do O( 1 ) O( n ) C[i,j] = 0; for k = 1 to n do O( 1 ) C[i,j] = C[i,j] + A[i,k]*B[k,j]; 22 Complejidad computacional (Edgardo A. Franco) 22
23 Análisis espacial ff n = eeeeeee dd n + eeeeeee dd (A, B, C) ff(n) = 1 + 3n 2 ee O(n 2 ) 3 A B C 23 23
24 Ejemplo 03: Algoritmo de Horner Sea A un vector de coeficientes y sea n Pn(z) = i=0 A[i] z i, un polinomio de grado n; evaluado para un argumento real z: Encontrar la función complejidad, temporal y espacial, para el algoritmo que evalúa Pn(z). 24
25 Algoritmo: Método de Horner Tamaño del Problema: n = grado del polinomio Operación básica: La multiplicación * (Se realiza un número de veces del mismo orden al tamaño del problema) Caso: El algoritmo hace el mismo número de operaciones en todos los casos. proc Horner(n,z,A) { polinomio=0; for(i=0;i<=n;i++) { polinomio=polinomio*z + A[n-i];* } } 25
26 polinomio=0; for(i=0; i<=n; i++) polinomio=polinomio*z + A[n-i]; O( n ) O( 1 ) 26
27 Análisis espacial ff n = eeeeeee dd n + eeeeeee dd ppppppppp + eeeeeee dd z + eeeeeee dd i + eeeeeee dd (A) fe(n) = n = 4 + n ee O(n) n p z i A 27 27
28 Ejemplo 04: Fibonacci (Iterativo) anterior = 1; --> 1 Asignación actual = 1; --> 1 Asignación while (n>2){ --> n Condicionales aux = anterior + actual; --> n-2 Asignaciones anterior = actual; --> n-2 Asignaciones actual = aux; --> n-2 Asignaciones n = n - 1; --> n-2 Asignaciones } --> n-2+1 Saltos implicitos return (actual); --> 1 Asignación T(n) = 6n-7=O(n) 28 Complejidad computacional (Edgardo A. Franco) 28
29 Ejemplo 05: Búsqueda binaria BusquedaBinaria(A,n,dato) inferior=0; O( 1 ) superior=n-1; while(inferior<=superior) centro=(superior+inferior)/2; if(a[centro]==dato) return centro; else if(dato < A[centro] ) superior=centro-1; else inferior=centro+1; return -1; O(log 2 n) 29 Complejidad computacional (Edgardo A. Franco) 29
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. 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
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
Complejidad de los Algoritmos
Que es un Algoritmo? Complejidad de los Algoritmos Webster: cualquier método especial para resolver cierta clase de problemas. Horowitz: método preciso utilizable en una computadora para la solución de
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 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 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
Tema 04: Notación asintótica M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com [email protected] @edfrancom edgardoadrianfrancom 1 Contenido Introducción Asíntota Dominio asintótico Ejemplo
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
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
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á
Complejidad computacional y asintótica
Complejidad computacional y asintótica Complejidad computacional Indica el esfuerzo que hay que realizar para aplicar un algoritmo y lo costoso que éste resulta. La eficiencia suele medirse en términos
Conceptos Fundamentales del Análisis de Algoritmos II
Conceptos Fundamentales del Análisis de Algoritmos II Dr. Eduardo A. RODRÍGUEZ TELLO CINVESTAV-Tamaulipas 17 de enero de 2018 Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Conceptos Fundamentales del Análisis II
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
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,
Análisis de algoritmos
Tema 02: Complejidad de los algoritmos M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com [email protected] @edfrancom edgardoadrianfrancom 1 Contenido Algoritmo Algoritmo vs. Proceso Computacional
Complejidad computacional. Algoritmos y Estructuras de Datos I. Complejidad computacional. Notación O grande
Complejidad computacional Algoritmos y Estructuras de Datos I Segundo cuatrimestre de 2014 Departamento de Computación - FCEyN - UBA Algoritmos - clase 10 Introducción a la complejidad computacional y
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
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
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
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
Tema 3. Análisis de costes
Tema 3. Análisis de costes http://aulavirtual.uji.es José M. Badía, Begoña Martínez, Antonio Morales y José M. Sanchiz {badia, bmartine, morales, sanchiz}@icc.uji.es Estructuras de datos y de la información
Análisis de algoritmos
M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com [email protected] @edfrancom edgardoadrianfrancom 1 1. Encuentre el orden O de complejidad temporal y espacial del algoritmo de ordenamiento
ELO320 Estructuras de Datos y Algoritmos. Complejidad. Tomás Arredondo Vidal
ELO320 Estructuras de Datos y Algoritmos Complejidad Tomás Arredondo Vidal Este material está basado en: Robert Sedgewick, "Algorithms in C", (third edition), Addison-Wesley, 2001 Thomas Cormen et al,
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/
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 Técnicas y Herramientas Pablo R. Fillottrani Depto. Ciencias e Ingeniería de la Computación Universidad Nacional del Sur Primer Cuatrimestre 2014 Técnicas y Herramientas Técnicas
Técnicas y Herramientas. Algoritmos y Complejidad. Técnicas de Demostración. Técnicas y Herramientas. Herramientas Matemáticas Básicas
Técnicas y Herramientas Técnicas y Herramientas Pablo R. Fillottrani Depto. Ciencias e Ingeniería de la Computación Universidad Nacional del Sur Primer Cuatrimestre 2014 Técnicas de Demostración Herramientas
Temario. Tipos de recursión. Eficiencia y recursión
RECURSION Temario Tipos de recursión Eficiencia y recursión 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
Análisis de algoritmos
Tema 08: Divide y vencerás (DyV) M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com [email protected] @edfrancom edgardoadrianfrancom 1 Contenido Introducción Divide y vencerás Observaciones
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
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.
Notación Asintótica 2
Notación Asintótica 2 mat-151 1 Éxamen Rápido (6 minutos) Cada operación fundamental usa c milisegundos, cuánto tiempo toma contar hasta 1,000,000? Cuál es el valor de N? Cuál es el órden de complejidad
Tema 10: Árbol binario de búsqueda
Tema 10: Árbol binario de búsqueda M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com [email protected] @edfrancom edgardoadrianfrancom (Prof. Edgardo A. Franco) 1 Contenido Árbol binario de
Tema 06: Recursividad
Tema 06: Recursividad M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com [email protected] @edfrancom edgardoadrianfrancom (Prof. Edgardo A. Franco) 1 Contenido Recursión Recursividad Programación
COMPLEJIDAD Y EFICIENCIA DE ALGORITMOS
UNIVERSIDAD NACIONAL DE SANTIAGO DEL ESTERO Facultad de Ciencias Exactas y Tecnologías Licenciatura en Sistemas de Información 2009 COMPLEJIDAD Y EFICIENCIA DE ALGORITMOS 1 TEORÍA DE LA COMPLEJIDAD Dado
Tiempo de Ejecución. Midiendo el Tiempo de Ejecución
Tiempo de Ejecución Arturo Díaz Pérez Sección de Computación Departamento de Ingeniería Eléctrica CINVESTAV-IPN Av. Instituto Politécnico Nacional No. 2508 Col. San Pedro Zacatenco México, D. F. CP 07300
Análisis de Algoritmos
January 15, 010 1 Pseudocódigo 3 Modelos de referencia Antes de analizar un algoritmo debemos tener un modelo de la implementación de la tecnología que se va a usar, incluyendo un modelo para los recursos
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?
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
Notación Asintótica. Programación Avanzada
Notación Asintótica Programación Avanzada Orden de crecimiento asintótico Ayuda a: Identificar el comportamiento de un algoritmo en el peor, el mejor o el caso promedio. Tener una idea del comportamiento
ALGORITMOS INTRODUCCIÓN ALGORITMOS INTRODUCCIÓN AL ANÁLISIS Y AL DISEÑO DE AL ANÁLISIS Y AL DISEÑO DE UNIVERSIDAD AUTÓNOMA METROPOLITANA
INTRODUCCIÓN AL ANÁLISIS Y AL DISEÑO DE ALGORITMOS El análisis de la complejidad de algoritmos, así como la discusión de las ventajas/desventajas, que tienen diferentes soluciones a los problemas clásicos,
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
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
Multiplicación de matrices simétricas
Multiplicación de matrices simétricas La traspuesta de una matriz A n n es definida como una matriz A T n n tal que A T [i, j] =A[j, i] paracadai, j 2{1,...,n} Además, una matriz A es simétrica si A =
Análisis de algoritmos
Tema 03: Análisis temporal M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com [email protected] @edfrancom edgardoadrianfrancom 1 Contenido Caso de entrada Ejemplo 1 (Búsqueda lineal) Operación
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
Introducción y Comportamiento Asintótico
Introducción y Comportamiento Asintótico M. Andrea Rodríguez-Tastets Ayudante: Erick Elejalde Universidad de Concepción,Chile www.inf.udec.cl\ andrea [email protected] I Semestre - 2014 1/64 Problemas and
Complejidad de Algoritmos
Complejidad de Algoritmos Tema 5 Introducción Un algoritmo es una secuencia de instrucciones que resuelve un problema Puede tener diferentes implementaciones Para comparar las diferentes formas (algoritmos)
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
Tema 9. Recursividad
Tema 9. Recursividad http://aulavirtual.uji.es José M. Badía, Begoña Martínez, Antonio Morales y José M. Sanchiz {badia, bmartine, morales, [email protected] Estructuras de datos y de la información Universitat
Tema 06: Estructuras y sentencias de control en C
Tema 06: Estructuras y sentencias de control en C M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com [email protected] @edfrancom edgardoadrianfrancom Estructuras de datos (Prof. Edgardo A.
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,
TEMA 1 La eficiencia de los algoritmos
DLSI (Univ. Alicante) Tema 1. La eficiencia de los algoritmos TEMA 1 La eficiencia de los algoritmos PROGRAMACIÓN Y ESTRUCTURAS DE DATOS La eficiencia de los algoritmos 1. Noción de complejidad Complejidad
1. Algoritmo, programa y pseudocódigo. Introducción al estudio de algoritmos. Ejemplos
Introducción al estudio de algoritmos 1. Algoritmo, programa y pseudocódigo 2. Eficiencia y el principio de invarianza 3. Operaciones elementales 4. Casos mejor, peor y medio 5. Notación asintótica 6.
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
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
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
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
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
Arreglos. Algoritmos y Estructuras de Datos I. Arreglos en C++ Arreglos y listas
Arreglos Algoritmos y Estructuras de Datos I Primer cuatrimestre 2007 Teórica de imperativo 3 Algoritmos de búsqueda secuencias de una cantidad fija de variables del mismo tipo se declaran con un nombre,,
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
Tema 02: Algoritmia y pseudocódigo
M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com [email protected] @edfrancom edgardoadrianfrancom Estructuras de datos (Prof. Edgardo A. Franco) 1 Contenido Pseudocódigo Ejemplo 01 Ejemplo
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
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
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.
Algoritmos de Ordenación
Algoritmos de Ordenación Pedro Corcuera Dpto. Matemática Aplicada y Ciencias de la Computación Universidad de Cantabria [email protected] Algoritmos comunes - Ordenación Ordenación o clasificación es
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.
Técnicas de diseño de algoritmos Divide y Vencerás
Técnicas de diseño de algoritmos Divide y Vencerás Luis Javier Rodríguez Fuentes Amparo Varona Fernández Departamento de Electricidad y Electrónica Facultad de Ciencia y Tecnología, UPV/EHU [email protected]
Analisis de algoritmos
Analisis de algoritmos Eficiencia Es la capacidad de disponer de un recurso. En el caso de los algoritmos, la eficiencia se logra haciendo el mejor uso posible de los recursos del sistema. Recursos Qué
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.
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,
Análisis de algoritmos
Tema 10: Algoritmos de empate de cadenas M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com [email protected] @edfrancom edgardoadrianfrancom 1 Contenido Introducción Empate de cadenas Fuerza
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
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
Estructuras de Datos. Clase 3 Análisis de algoritmos recursivos
Clase 3 Análisis de algoritmos recursivos http://cs.uns.edu.ar/~sag Bahía Blanca, Argentina Notación asintótica (Big-Oh) Sean f(n) y g(n) : N R f(n) es O(g(n)) ssiexisten c real con c>0 y n 0 natural con
