Instituto Tecnológico de Costa RicaDepartamento de Ingeniería en Computación             Análisis de Algoritmos          P...
Motivación •  ¿Criterios para elegir entre varios algoritmos para resolver    el mismo problema?       1. Subjetivamente (...
Introducción  Formas de determinar eficiencia del tiempo de ejecución:  1.  Medición empírica: programar y medir/comparar ...
Tiempo de Ejecución  •  Tiempo de ejecución de un programa con una entrada de     tamaño n se define como una función T(n)...
Tiempo de Ejecución (2)  •  T(n) depende del compilador y máquina utilizados. Peero..       •  T(n) NO es expresable en un...
Tiempo de Ejecución (3)  •  Muchos algoritmos no sólo dependen del tamaño de la     entrada sino también de la entrada esp...
Tiempo de Ejecución (4)  •  En QuickSort, los casos mejor (a), promedio (b) y peor (c)     se ven así:  •        Pero, ¿Cu...
Tiempo de Ejecución (5)  •  Para una combinación de compilador y máquina particular,     un algoritmo con mayor proporción...
Tiempo de Ejecución (6)  •  Ahora, suponga que se tienen 4 algoritmos de distintas     complejidades y se dispone de 1000 ...
Notación Asintótica•      Permite resumir concisamente el comportamiento asintótico       (tendencia) del tiempo de ejecuc...
Notación Asintótica (2)•      Si a partir de un valor de n (n0), T(n) ≤ c·f(n) para algún       valor constante c, se dice...
Notación Asintótica (3)       •     Ω(f(n)) es el conjunto de funciones cuyo valor siempre es MAYOR             que una ca...
Notación Asintótica (4)•    Relaciones de inclusión entre las familias de funciones:•    Aunque 3n + 2 pertenece O(n2) o Ω...
Notación Asintótica (5)•    Ahora bien, ¿Cómo resumir un T(n) complejo en un O(f(n))?     Por ejemplo:     •      Si T(n) ...
Notación Asintótica (6)•    ¿Todo esto nos sirve para algo !·$(%&/?•    ¿Están despiertos? L•    Determinación de una cot...
Notación Asintótica (7)•    Mejor veamos un ejemplo completo…                               ¿Cuál es el tamaño de la entra...
Notación Asintótica (8)•    Algunas propiedades de las sumatorias, útiles en el análisis     de algoritmos iterativos:Moti...
Notación Asintótica (9)•    ¿Vemos otro ejemplo?                                                                          ...
Notación Asintótica (10)•      ¿Y cómo hacer en algoritmos con llamadas recursivas?•      T(n) se define como una recurren...
Notación Asintótica (11)Tres distintos enfoques para resolver ecuación de recurrencia:     1. Suponer solución f(n) y usar...
Notación Asintótica (12)3. Expandir las recurrencias es un método adecuado cuando:       •     NO se puede suponer una sol...
•            Notación Asintótica (13)       Veamos otro ejemplo…       Suponiendo que n > 1:T(n) ≤       2T(n/2) + c2n    ...
Conclusión•      Velocidad de crecimiento del tiempo de ejecución (Complejidad       TEMPORAL) provee una medida objetiva ...
Conclusión (2)•      ¿Profe, no pensás irte ya? L•      Hasta ahora, complejidad temporal ~¿qué tanto tiempo       tarda ...
Conclusión (3)                                                                                      ¿Todavía nada? L     ...
Referencias1.  Aho, Alfred V., John E. Hopcroft y Jeffrey D. Ullman.    Estructuras de Datos y Algoritmos. Addison Wesley ...
Instituto Tecnológico de Costa RicaDepartamento de Ingeniería en Computación             Análisis de Algoritmos          P...
Upcoming SlideShare
Loading in...5
×

Algorithm Analysis Fundamentals (Spanish)

401

Published on

Presentation about theory and techniques for Algorithm Analysis

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
401
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Algorithm Analysis Fundamentals (Spanish)

  1. 1. Instituto Tecnológico de Costa RicaDepartamento de Ingeniería en Computación Análisis de Algoritmos Prof. Aníbal Gómez-Estrada Algoritmos y Estructuras de Datos 2 - II Semestre 2010
  2. 2. Motivación •  ¿Criterios para elegir entre varios algoritmos para resolver el mismo problema? 1. Subjetivamente (ie. simpleza, claridad y/o mantenibilidad, etc) 2. Objetivamente (eficiencia al usar recursos y tiempo de ejecución) •  Si el programa no se usará mucho, escoger subjetivamente •  Sino, escoger objetivamente (en particular, si tendrá entradas de gran tamaño) •  Conforme los computadores se hacen más veloces, también aumentan los deseos de resolver problemas: •  Más rápidamente •  De mayor tamaño •  Medida objetiva es criterio importante! ¿Cómo hacemos? •  ¿Para darle problemas a los estudiantes? LMotivación | Introducción | Tiempo de Ejecución | Notación Asintótica | Conclusión | Referencias Instituto Tecnológico de Costa Rica – Algoritmos y Estructuras de Datos 2 – Análisis de Algoritmos – II Semestre 2010
  3. 3. Introducción Formas de determinar eficiencia del tiempo de ejecución: 1.  Medición empírica: programar y medir/comparar tiempo de ejecución en lenguaje, compilador y plataforma (S.O y máquina) particulares ¿Desventajas? •  Tiempo de implementación (técnica similar a Benchmarking!) •  Dependiente de: •  Destreza del programador •  Datos de prueba (distribución y tamaño de los datos) •  Calidad del compilador •  Conjunto de instrucciones del computador 2.  Medición analítica: análisis teórico-matemático •  Basado en complejidad del tiempo asintótica (tendencia) •  Tiempo de ejecución es una función que depende de la entrada •  Eficiencia se mide usualmente en el peor casoMotivación | Introducción | Tiempo de Ejecución | Notación Asintótica | Conclusión | Referencias Instituto Tecnológico de Costa Rica – Algoritmos y Estructuras de Datos 2 – Análisis de Algoritmos – II Semestre 2010
  4. 4. Tiempo de Ejecución •  Tiempo de ejecución de un programa con una entrada de tamaño n se define como una función T(n) y la unidad del: •  Tamaño de entrada (n) depende del problema. Por ej: •  Usualmente algoritmos matemático-aritméticos, n = argumento •  Algoritmos de ordenamiento, n = tamaño de la lista •  T(n) no se especifican pero usualmente se interpreta como la cantidad de instrucciones idealizadasMotivación | Introducción | Tiempo de Ejecución | Notación Asintótica | Conclusión | Referencias Instituto Tecnológico de Costa Rica – Algoritmos y Estructuras de Datos 2 – Análisis de Algoritmos – II Semestre 2010
  5. 5. Tiempo de Ejecución (2) •  T(n) depende del compilador y máquina utilizados. Peero.. •  T(n) NO es expresable en unidad estándar de tiempo •  NO interesa un estudio que dependa del costo de instrucciones •  SI interesa saber la cantidad de instrucciones elementales (pasos) y cómo esa cantidad depende del tamaño del problema •  Se quiere poder hacer observaciones como “el tiempo de ejecución del algoritmo es proporcional a n2”Motivación | Introducción | Tiempo de Ejecución | Notación Asintótica | Conclusión | Referencias Instituto Tecnológico de Costa Rica – Algoritmos y Estructuras de Datos 2 – Análisis de Algoritmos – II Semestre 2010
  6. 6. Tiempo de Ejecución (3) •  Muchos algoritmos no sólo dependen del tamaño de la entrada sino también de la entrada específica: •  T(n) representa el tiempo de ejecución del peor caso para una entrada de tamaño n •  Tprom(n) representa el valor promedio del tiempo de ejecución para entradas de tamaño n •  En el ejemplo anterior, el tiempo de ejecución para resolver una instancia de tamaño n esta acotado por: •  Inferiormente por c0 •  Superiormente por (c1 · n) + c2 •  Gráficamente, se vería así:Motivación | Introducción | Tiempo de Ejecución | Notación Asintótica | Conclusión | Referencias Instituto Tecnológico de Costa Rica – Algoritmos y Estructuras de Datos 2 – Análisis de Algoritmos – II Semestre 2010
  7. 7. Tiempo de Ejecución (4) •  En QuickSort, los casos mejor (a), promedio (b) y peor (c) se ven así: •  Pero, ¿Cuál caso interesa más para la comparación? •  Depende del problema, al menos debemos analizarlos por igual •  Tprom(n) es útil si las entradas son usualmente promedio. Peero… •  Si el costo de T(n) es prohibitivo => el algoritmo no es factible! •  El tiempo en el mejor y peor de los casos indican las cotas …Motivación | Introducción | Tiempo de Ejecución | Notación Asintótica | Conclusión | Referencias Instituto Tecnológico de Costa Rica – Algoritmos y Estructuras de Datos 2 – Análisis de Algoritmos – II Semestre 2010
  8. 8. Tiempo de Ejecución (5) •  Para una combinación de compilador y máquina particular, un algoritmo con mayor proporción de pasos puede ser preferible en un tamaño (n) o entrada determinados: •  Pero, algoritmos con menor proporción de pasos son casi siempre preferibles pues la razón de tiempos de ejecución crece, a medida q aumenta el tamaño de la entrada (n)…Motivación | Introducción | Tiempo de Ejecución | Notación Asintótica | Conclusión | Referencias Instituto Tecnológico de Costa Rica – Algoritmos y Estructuras de Datos 2 – Análisis de Algoritmos – II Semestre 2010
  9. 9. Tiempo de Ejecución (6) •  Ahora, suponga que se tienen 4 algoritmos de distintas complejidades y se dispone de 1000 seg para resolver un problema determinado: •  ¿Qué tamaño de entrada máximo se podría resolver? Por ejemplo: T(n)=5n2ó1000=5n2ó200=n2ó14.1421=n •  ¿Y si hay una máquina que corre diez veces + rapido? Es decir, corre en 1000s lo que ejecutaría en 10000sMotivación | Introducción | Tiempo de Ejecución | Notación Asintótica | Conclusión | Referencias Instituto Tecnológico de Costa Rica – Algoritmos y Estructuras de Datos 2 – Análisis de Algoritmos – II Semestre 2010
  10. 10. Notación Asintótica•  Permite resumir concisamente el comportamiento asintótico (tendencia) del tiempo de ejecución de un algoritmo. Por ej: •  T(n) = n + 1 => T(n) = O(n) •  T(n) = 3n + 2 => T(n) = O(n) •  T(n) = 10n2 + 4n + 3 => T(n) = O(n2) •  T(n) = 6·2n + n2 => T(n) = O(2n)•  Simplifica el análisis de la velocidad de crecimiento de los valores de una función mediante “familias de funciones”: •  O(f(n)) es el conjunto de funciones cuyo valor siempre es MENOR que una cantidad constante c de veces de f(n) •  O(f(n)) es el conjunto de funciones que, asintóticamente se puede acotar superiormente con una función proporcional a f(n) •  Mejor veámoslo gráficamente J…Motivación | Introducción | Tiempo de Ejecución | Notación Asintótica | Conclusión | Referencias Instituto Tecnológico de Costa Rica – Algoritmos y Estructuras de Datos 2 – Análisis de Algoritmos – II Semestre 2010
  11. 11. Notación Asintótica (2)•  Si a partir de un valor de n (n0), T(n) ≤ c·f(n) para algún valor constante c, se dice que T(n) es O(f(n))•  Por ejemplo: •  T(n) = n + 1 ∈ O(n), con n0 = 1 y c = 2 //T(n) es O(n) •  T(n) = 3n + 2 ∈ O(n), con n0 = 2 y c = 4 //T(n) es O(n) •  T(n) = 10n2 + 4n + 3 ∈ O(n2), con n0 = 5 y c = 11 //T(n) es O(n2) •  T(n) = 6·2n + n2 ∈ O(2n), con n0 = 4 y c = 7 //T(n) es O(2n)Motivación | Introducción | Tiempo de Ejecución | Notación Asintótica | Conclusión | Referencias Instituto Tecnológico de Costa Rica – Algoritmos y Estructuras de Datos 2 – Análisis de Algoritmos – II Semestre 2010
  12. 12. Notación Asintótica (3) •  Ω(f(n)) es el conjunto de funciones cuyo valor siempre es MAYOR que una cantidad constante c de veces de f(n) •  Ω(f(n)) es el conjunto de funciones que, asintóticamente se puede acotar inferiormente con una función proporcional a f(n) •  ¿Lo vemos gráficamente? J•  Si a partir de un valor de n (n0),t(n) ≥ c·f(n) para algún valorconstante c, se dice que t(n) es Ω(f(n)).•  Ω(f(n)) describe lo “mejorque podría pasar” para untamaño de entrada dado…Motivación | Introducción | Tiempo de Ejecución | Notación Asintótica | Conclusión | Referencias Instituto Tecnológico de Costa Rica – Algoritmos y Estructuras de Datos 2 – Análisis de Algoritmos – II Semestre 2010
  13. 13. Notación Asintótica (4)•  Relaciones de inclusión entre las familias de funciones:•  Aunque 3n + 2 pertenece O(n2) o Ω(log n), la acotación más ajustada describe el comportamiento asintótico -de forma más precisa y realista- con respecto al tamaño de la entrada•  Taxonomía de las familias de funciones: - Sea T(n) el tiempo de ejecución de un algoritmo •  - Si T(n) = O(n2), se dice que •  el algoritmo es cuadráticoMotivación | Introducción | Tiempo de Ejecución | Notación Asintótica | Conclusión | Referencias Instituto Tecnológico de Costa Rica – Algoritmos y Estructuras de Datos 2 – Análisis de Algoritmos – II Semestre 2010
  14. 14. Notación Asintótica (5)•  Ahora bien, ¿Cómo resumir un T(n) complejo en un O(f(n))? Por ejemplo: •  Si T(n) = 3n + 2 => T(n) = O(n) •  Si T(n) = (n + 1)(n – 1) => T(n) = O(n2) •  T(n) = 6·2n + n2 => T(n) = O(2n)•  Las cotas expresadas en notación asintótica se resumen a partir de la manipulación algebraica y ciertas propiedades•  Para O(n) tenemos (nótese que para Ω(n) serían análogas) •  O(f(n)) = f(n) •  O(c · f(n)) = O(f(n)) •  O(f(n)) + O(g(n)) = O(|f(n)| + |g(n)|) •  O(f(n)) · O(g(n)) = O(|f(n)| · |g(n)|) •  O(f(n) + g(n)) = O(MAX(f(n), g(n)))Motivación | Introducción | Tiempo de Ejecución | Notación Asintótica | Conclusión | Referencias Instituto Tecnológico de Costa Rica – Algoritmos y Estructuras de Datos 2 – Análisis de Algoritmos – II Semestre 2010
  15. 15. Notación Asintótica (6)•  ¿Todo esto nos sirve para algo !·$(%&/?•  ¿Están despiertos? L•  Determinación de una cota superior precisa no siempre es una tarea sencilla, algunas veces puede ser todo un desafío..•  No hay conjunto completo de reglas para analizar programas L. Peero… •  Primero, identifique y defina tamaño de entrada (n) del problema •  Luego, empiece análisis desde estructuras más anidadas hacia afuera •  O(f(x)) en instrucción elemental es O(1) •  O(f(x)) en secuencia de instrucciones es O(f1(n) + f2(n) + ...) •  O(f(x)) en estatuto condicional if-then-else es: O(f(x)) de la condición => usualmente O(1) + O(MAX(fthen(n) + felse(n))) •  O(f(x)) en un ciclo tipo while es: Σcantidad_iteraciones (O(f(x)) de la condición + O(f(x)) del cuerpo) •  O(f(x)) en llamada a procedimiento NO recursivo es O(f(x)) del cuerpoMotivación | Introducción | Tiempo de Ejecución | Notación Asintótica | Conclusión | Referencias Instituto Tecnológico de Costa Rica – Algoritmos y Estructuras de Datos 2 – Análisis de Algoritmos – II Semestre 2010
  16. 16. Notación Asintótica (7)•  Mejor veamos un ejemplo completo… ¿Cuál es el tamaño de la entrada? Tamaño de la entrada (n,m) son las dimensiones de la matriz (Σn (1 + (Σm (4) + 1) + 1)) + 1 = Σn (3 + Σm (4)) + 1 Σm (1 + 2 + 1) + 1 = Σm (4) + 1 1+1T(n,m) = 1+ Σn (3 + Σm (4)) = 1+ Σn (3) + Σn (Σm (4)) = 1+ 3 Σn (1) + 4Σn (Σm (1)) = 1+ 3n + 4Σn(m) = 1+ 3n + 4(m·n)T(n,m) = 4nm +3n + 1 = O(4nm +3n + 1) = O(4nm) = O(n·m)Motivación | Introducción | Tiempo de Ejecución | Notación Asintótica | Conclusión | Referencias Instituto Tecnológico de Costa Rica – Algoritmos y Estructuras de Datos 2 – Análisis de Algoritmos – II Semestre 2010
  17. 17. Notación Asintótica (8)•  Algunas propiedades de las sumatorias, útiles en el análisis de algoritmos iterativos:Motivación | Introducción | Tiempo de Ejecución | Notación Asintótica | Conclusión | Referencias Instituto Tecnológico de Costa Rica – Algoritmos y Estructuras de Datos 2 – Análisis de Algoritmos – II Semestre 2010
  18. 18. Notación Asintótica (9)•  ¿Vemos otro ejemplo? ¿Cuál es el tamaño de la entrada? Tamaño de la entrada (n) es el largo del arreglo (Σn-1 (1 + ((Σn-i 6) + 1) + 1)) + 1 = (Σn-1 ((Σn-i 6) + 3)) +1 (Σn-i (1 + 4 + 1)) + 1 = (Σn-i 6) + 1 1 1 1 1T(n) = 1+ (Σn-1 ((3 + Σn-i 6))) = 1 + Σn-1 (3) + Σn-1 (Σn-i 6) = 1 + 3Σn-1 (1) + Σn-1 (6Σn-i (1)) = 1 + 3(n-1) + Σn-1(6(n-i)) = 1 + 3n - 3 + Σn-1(6(n-i)) = -2 + 3n + 6nΣn-1 (1) - 6Σn-1 (i) = -2 + 3n + 6n(n-1) - 6((n-1)n/2) = -2 + 3n + 6n2 - 6n – 3(n(n-1)) = -2 + 3n + 6n2 - 6n – 3n2 + 3n = -2 + 3n2T(n) = 3n2 – 2 = O(3n2 – 2) = O(3n2) = O(n2)Motivación | Introducción | Tiempo de Ejecución | Notación Asintótica | Conclusión | Referencias Instituto Tecnológico de Costa Rica – Algoritmos y Estructuras de Datos 2 – Análisis de Algoritmos – II Semestre 2010
  19. 19. Notación Asintótica (10)•  ¿Y cómo hacer en algoritmos con llamadas recursivas?•  T(n) se define como una recurrencia (“ecuación recursiva”)•  ¿Y eso de que nos sirve si lo que necesitamos calcular es la cantidad de “pasos” ejecutados con relación al tamaño? •  NO es posible ordenar las evaluaciones de modo que las de más afuera sólo utilicen las de más adentro L•  Existen técnicas matemáticas para resolver recurrencias.. J ¿Les echamos un vistazo?Motivación | Introducción | Tiempo de Ejecución | Notación Asintótica | Conclusión | Referencias Instituto Tecnológico de Costa Rica – Algoritmos y Estructuras de Datos 2 – Análisis de Algoritmos – II Semestre 2010
  20. 20. Notación Asintótica (11)Tres distintos enfoques para resolver ecuación de recurrencia: 1. Suponer solución f(n) y usar la recurrencia para mostrar T(n) ≤ f(n): Suponga T(n) = a·n·log(n). Peero, cuando n = 1, T(n) = 0. NO sirve! ⇒  Mejor, T(n) = a·n·log(n) + b. Asuma T(k) ≤ a·k·log(n) + b ∀k < n ⇒  Demostrar por inducción que T(n) ≤ a·n·log(n) + b 2. Emplear solución general para ciertos tipos de recurrenciaMotivación | Introducción | Tiempo de Ejecución | Notación Asintótica | Conclusión | Referencias Instituto Tecnológico de Costa Rica – Algoritmos y Estructuras de Datos 2 – Análisis de Algoritmos – II Semestre 2010
  21. 21. Notación Asintótica (12)3. Expandir las recurrencias es un método adecuado cuando: •  NO se puede suponer una solución, o •  NO hay seguridad que T(n) es la mejor cota •  NO es fácil aplicar los otros métodos. ¿Más entendible?•  Produce ecuación NO recursiva para T(n) J. Consiste en: •  Ir “desenrrollando” la expresión recursiva, sucesivamente •  Ir sustituyendo cualquier término T(i) por su definición •  Usar la “intuición” para deducir el patrón que lleva al caso baseMotivación | Introducción | Tiempo de Ejecución | Notación Asintótica | Conclusión | Referencias Instituto Tecnológico de Costa Rica – Algoritmos y Estructuras de Datos 2 – Análisis de Algoritmos – II Semestre 2010
  22. 22. •  Notación Asintótica (13) Veamos otro ejemplo… Suponiendo que n > 1:T(n) ≤ 2T(n/2) + c2n ≤ 2(2T(n/4) + c2n/2) + c2n ≤ 2(2(2T(n/8) + c2n/4) + c2n/2) + c2n ≤ … ≤ 2iT(n/2i) + i(c2n)•  Suponiendo que n es potencia de 2 (como 2k), la expansión termina tan pronto como se alcance T(1); cuando i = k…T(n) ≤ 2kT(1) + k(c2n) ≤ 2k·1 + k(c2n)•  Como hay k recursiones y n se divide a la mitad en cada recursión => n = 2k ó log2(n) = kT(n) ≤ 2log2(n) ·1 + log2(n)(c2n) ≤ n + c2nlog2(n) … T(n) = O(n + c2nlog2(n)) = O(c2nlog2(n)) = O(nlog2(n))Motivación | Introducción | Tiempo de Ejecución | Notación Asintótica | Conclusión | Referencias Instituto Tecnológico de Costa Rica – Algoritmos y Estructuras de Datos 2 – Análisis de Algoritmos – II Semestre 2010
  23. 23. Conclusión•  Velocidad de crecimiento del tiempo de ejecución (Complejidad TEMPORAL) provee una medida objetiva para evaluar eficiencia •  Peor caso más usado peeero Caso Promedio más neutral (ej. QuickSort)•  Algoritmos con comportamiento más natural (escalabilidad): •  Complejidad Lineal (O(n)): en doble de tiempo, doble de datos procesable •  Complejidad Sub-Lineal (O(n log n)): en doble de tiempo, atacan problemas mayores y para resolver un problema el doble de grande sólo hace falta un poco más de tiempo•  Sin embargo, NO es el único criterio, NI necesariamente el más importante. Pueden ser más relevantes criterios como: •  Costo de escritura, simpleza y mantenibilidad, si el programa se usará pocas veces •  Factor de proporcionalidad constante en la fórmula del tiempo de ejecución, si el programa sólo correrá con entradas “pequeñas” •  Complejidad ESPACIAL, si el programa requiere mucha memoria o tanta como para implementarse con almacenamiento secundario…Motivación | Introducción | Tiempo de Ejecución | Notación Asintótica | Conclusión | Referencias Instituto Tecnológico de Costa Rica – Algoritmos y Estructuras de Datos 2 – Análisis de Algoritmos – II Semestre 2010
  24. 24. Conclusión (2)•  ¿Profe, no pensás irte ya? L•  Hasta ahora, complejidad temporal ~¿qué tanto tiempo tarda un algoritmo con relación al tamaño de la entrada?•  Medición NO solo deberia tomar en cuenta el tiempo, máxime que sabemos del tradeoff tiempo vs. espacio: •  Reducir uso de memoria ó Incrementar tiempo de procesamiento•  ¿Qué es complejidad espacial? •  Cuanta memoria adicional se consume con relación al tamaño… •  El análisis algorítmico es análogo al de complejidad temporal: •  En vez de "Paso“: "Celda de memoria". No importa tamaño de la celda sino la proporción con respecto al tamaño del problema •  En vez de T(n): S(n) •  La misma notación asintótica J•  Mejor, veamos un ejemplo…Motivación | Introducción | Tiempo de Ejecución | Notación Asintótica | Conclusión | Referencias Instituto Tecnológico de Costa Rica – Algoritmos y Estructuras de Datos 2 – Análisis de Algoritmos – II Semestre 2010
  25. 25. Conclusión (3) ¿Todavía nada? L ¿Lo vemos “más graficamente”?¿Cuánta memoria adicional se consume?¿En que proporción al tamaño de la entrada?Motivación | Introducción | Tiempo de Ejecución | Notación Asintótica | Conclusión | Referencias Instituto Tecnológico de Costa Rica – Algoritmos y Estructuras de Datos 2 – Análisis de Algoritmos – II Semestre 2010
  26. 26. Referencias1.  Aho, Alfred V., John E. Hopcroft y Jeffrey D. Ullman. Estructuras de Datos y Algoritmos. Addison Wesley Longman: México, 1988 (Capítulo 1 - Secciones 1.4 y 1.5, Capítulo 9)2.  https://arco.esi.uclm.es/publicdav/docs/Introducción al análisis de algoritmos.pdfMotivación | Introducción | Tiempo de Ejecución | Notación Asintótica | Conclusión | Referencias Instituto Tecnológico de Costa Rica – Algoritmos y Estructuras de Datos 2 – Análisis de Algoritmos – II Semestre 2010
  27. 27. Instituto Tecnológico de Costa RicaDepartamento de Ingeniería en Computación Análisis de Algoritmos Prof. Aníbal Gómez-Estrada Algoritmos y Estructuras de Datos 2 - II Semestre 2010

×