Tema 3. Algoritmos I: Análisis de algoritmos -...

53
Tema 3. Algoritmos I: Análisis de algoritmos Estructura de Datos y Algoritmos (EDA) Slides created by the ADS’s professors (Group LABDA)

Transcript of Tema 3. Algoritmos I: Análisis de algoritmos -...

Page 1: Tema 3. Algoritmos I: Análisis de algoritmos - ocw.uc3m.esocw.uc3m.es/ingenieria-informatica/estructura-datos-algoritmos/... · Análisis Teórico de Algoritmos ! Reglas generales

Tema 3. Algoritmos I: Análisis de algoritmos

Estructura de Datos y Algoritmos (EDA)

Slides created by the ADS’s professors (Group LABDA)

Page 2: Tema 3. Algoritmos I: Análisis de algoritmos - ocw.uc3m.esocw.uc3m.es/ingenieria-informatica/estructura-datos-algoritmos/... · Análisis Teórico de Algoritmos ! Reglas generales

Objetivos

2

}  Al final de la clase, los estudiantes deben ser capaces de:

1)  Determinar empíricamente la complejidad temporal de algoritmos simples

2)  Determinar el orden de complejidad de los algoritmos

3)  Comparar y clasificar los algoritmos de acuerdo a su complejidad

4)  Diferenciar los conceptos mejor caso y el peor caso en el rendimiento de un algoritmo

Page 3: Tema 3. Algoritmos I: Análisis de algoritmos - ocw.uc3m.esocw.uc3m.es/ingenieria-informatica/estructura-datos-algoritmos/... · Análisis Teórico de Algoritmos ! Reglas generales

Contenidos

3

} Análisis de Algoritmos } Análisis Empírico de Algoritmos } Análisis Teórico de Algoritmos

Page 4: Tema 3. Algoritmos I: Análisis de algoritmos - ocw.uc3m.esocw.uc3m.es/ingenieria-informatica/estructura-datos-algoritmos/... · Análisis Teórico de Algoritmos ! Reglas generales

Análisis de Algoritmos

}  Un  problema  puede  tener  varias  soluciones  diferentes  (algoritmos)      

}  Obje8vo:  elegir  el  algoritmo  más  eficiente  

Page 5: Tema 3. Algoritmos I: Análisis de algoritmos - ocw.uc3m.esocw.uc3m.es/ingenieria-informatica/estructura-datos-algoritmos/... · Análisis Teórico de Algoritmos ! Reglas generales

Análisis de Algoritmos } Un algoritmo es un conjunto de pasos

(instrucciones) para resolver un problema } Debe ser correcto !!! } Debe ser eficiente !!!

5

Page 6: Tema 3. Algoritmos I: Análisis de algoritmos - ocw.uc3m.esocw.uc3m.es/ingenieria-informatica/estructura-datos-algoritmos/... · Análisis Teórico de Algoritmos ! Reglas generales

Análisis de Algoritmos

}  Estudiar el rendimiento de los algoritmos (tiempo de ejecución y los requisitos de espacio)

}  Comparar algoritmos

}  Enfoque basado en el tiempo: ¿cómo estimar el tiempo requerido para un algoritmo?

}  Análisis empírico }  Análisis teórico

Page 7: Tema 3. Algoritmos I: Análisis de algoritmos - ocw.uc3m.esocw.uc3m.es/ingenieria-informatica/estructura-datos-algoritmos/... · Análisis Teórico de Algoritmos ! Reglas generales

Contenidos

7

} Análisis de Algoritmos } Análisis Empírico de Algoritmos } Análisis Teórico de Algoritmos

Page 8: Tema 3. Algoritmos I: Análisis de algoritmos - ocw.uc3m.esocw.uc3m.es/ingenieria-informatica/estructura-datos-algoritmos/... · Análisis Teórico de Algoritmos ! Reglas generales

Análisis Empírico de Algoritmos 1.  Escribe el programa 2.  Incluye instrucciones para medir el tiempo de

ejecución 3.  Ejecuta el programa con entradas de

diferentes tamaños 4.  Representa gráficamente los resultados

8

Page 9: Tema 3. Algoritmos I: Análisis de algoritmos - ocw.uc3m.esocw.uc3m.es/ingenieria-informatica/estructura-datos-algoritmos/... · Análisis Teórico de Algoritmos ! Reglas generales

Análisis Empírico de Algoritmos Ø  Dado un número n, desarrolle un método

para sumar de 1 a n 1.  Escribe el programa:

9

Page 10: Tema 3. Algoritmos I: Análisis de algoritmos - ocw.uc3m.esocw.uc3m.es/ingenieria-informatica/estructura-datos-algoritmos/... · Análisis Teórico de Algoritmos ! Reglas generales

Análisis Empírico de Algoritmos 2.  Incluye instrucciones para medir el tiempo de

ejecución Use System.currentTimeMillies() or System.nanoTime().

10

Page 11: Tema 3. Algoritmos I: Análisis de algoritmos - ocw.uc3m.esocw.uc3m.es/ingenieria-informatica/estructura-datos-algoritmos/... · Análisis Teórico de Algoritmos ! Reglas generales

Análisis Empírico de Algoritmos 2.  Incluye instrucciones para medir el tiempo de

ejecución

11

Page 12: Tema 3. Algoritmos I: Análisis de algoritmos - ocw.uc3m.esocw.uc3m.es/ingenieria-informatica/estructura-datos-algoritmos/... · Análisis Teórico de Algoritmos ! Reglas generales

Análisis Empírico de Algoritmos 3.  Ejecuta el programa con entradas de diferentes

tamaños

12

n   0me  (ns)  100   2485  

1.000 23996  10.000 204102  

100.000 2022441  1.000.000 1973428  

10.000.000 12012791  100.000.000 69984715  

1.000.000.000 743431482  

Page 13: Tema 3. Algoritmos I: Análisis de algoritmos - ocw.uc3m.esocw.uc3m.es/ingenieria-informatica/estructura-datos-algoritmos/... · Análisis Teórico de Algoritmos ! Reglas generales

Análisis Empírico de Algoritmos 1.  Representa gráficamente los resultados

13

1000

10000

100000

1000000

10000000

100000000

1E+09

1E+10

1E+11

1E+12

100 1000 10000 100000 1000000 10000000 100000000 1E+09

Page 14: Tema 3. Algoritmos I: Análisis de algoritmos - ocw.uc3m.esocw.uc3m.es/ingenieria-informatica/estructura-datos-algoritmos/... · Análisis Teórico de Algoritmos ! Reglas generales

Análisis Empírico de Algoritmos Ø  Cuando se necesita mostrar rangos muy grandes

(como en el ejemplo anterior), utilizar un gráfico Log-log

Ø El gráfico Log-log usa escalas logarítmicas en los ejes horizontal y vertical

Ø  ¿Cómo se puede hacer un gráfico Log-log en Excel?

1.  En el gráfico XY (dispersión), hacer doble clic en la escala de cada eje

2.  En el cuadro Formato de ejes, seleccionar la pestaña Escala y luego verifique la escala logarítmica

14

Page 15: Tema 3. Algoritmos I: Análisis de algoritmos - ocw.uc3m.esocw.uc3m.es/ingenieria-informatica/estructura-datos-algoritmos/... · Análisis Teórico de Algoritmos ! Reglas generales

Análisis Empírico de Algoritmos Ø ¿Hay otros algoritmos que resuelven este

problema?

15

Page 16: Tema 3. Algoritmos I: Análisis de algoritmos - ocw.uc3m.esocw.uc3m.es/ingenieria-informatica/estructura-datos-algoritmos/... · Análisis Teórico de Algoritmos ! Reglas generales

Análisis Empírico de Algoritmos

}  La solución de Gauss para sumar números del 1 al n

Nota: Se puede encontrar una explicación fácil en: http://mathandmultimedia.com/2010/09/15/sum-first-n-positive-integers/ 16

Page 17: Tema 3. Algoritmos I: Análisis de algoritmos - ocw.uc3m.esocw.uc3m.es/ingenieria-informatica/estructura-datos-algoritmos/... · Análisis Teórico de Algoritmos ! Reglas generales

Análisis Empírico de Algoritmos

17

Ø  Cada par suma n + 1 Ø  Hay n / 2 pares

http://mathandmultimedia.com/2010/09/15/sum-first-n-positive-integers/

Page 18: Tema 3. Algoritmos I: Análisis de algoritmos - ocw.uc3m.esocw.uc3m.es/ingenieria-informatica/estructura-datos-algoritmos/... · Análisis Teórico de Algoritmos ! Reglas generales

Análisis Empírico de Algoritmos

18

Ø  Cada par suma n + 1 Ø  Hay n / 2 pares

http://mathandmultimedia.com/2010/09/15/sum-first-n-positive-integers/

Page 19: Tema 3. Algoritmos I: Análisis de algoritmos - ocw.uc3m.esocw.uc3m.es/ingenieria-informatica/estructura-datos-algoritmos/... · Análisis Teórico de Algoritmos ! Reglas generales

Análisis Empírico de Algoritmos

} Ahora, puedes implementar la solución de Gauss

}  Ejecuta el programa para diferentes valores de n y mide el tiempo de ejecución

} A continuación, represente gráficamente el resultado y compáralo con la solución anterior

Page 20: Tema 3. Algoritmos I: Análisis de algoritmos - ocw.uc3m.esocw.uc3m.es/ingenieria-informatica/estructura-datos-algoritmos/... · Análisis Teórico de Algoritmos ! Reglas generales

Análisis Empírico de Algoritmos

Page 21: Tema 3. Algoritmos I: Análisis de algoritmos - ocw.uc3m.esocw.uc3m.es/ingenieria-informatica/estructura-datos-algoritmos/... · Análisis Teórico de Algoritmos ! Reglas generales

Análisis Empírico de Algoritmos

n   0me  (ns)  100   436  

1.000 371  10.000 259  

100.000 298  1.000.000 290  

10.000.000 250  100.000.000 233  

1.000.000.000 222  

Page 22: Tema 3. Algoritmos I: Análisis de algoritmos - ocw.uc3m.esocw.uc3m.es/ingenieria-informatica/estructura-datos-algoritmos/... · Análisis Teórico de Algoritmos ! Reglas generales

Análisis Empírico de Algoritmos

1

10

100

1000

10000

100000

1000000

10000000

100000000

1E+09

1E+10

1E+11

1E+12

100 1000 10000 100000 1000000 10000000 100000000 1E+09

sum (ns) sumGauss (ns)

Page 23: Tema 3. Algoritmos I: Análisis de algoritmos - ocw.uc3m.esocw.uc3m.es/ingenieria-informatica/estructura-datos-algoritmos/... · Análisis Teórico de Algoritmos ! Reglas generales

Análisis Empírico de Algoritmos

} Sin embargo, algunas desventajas: 1.  Necesitas implementar el algoritmo 2.  Los resultados pueden no ser indicativos

para otras entradas 3.  Mismo entorno para comparar dos

algoritmos

Page 24: Tema 3. Algoritmos I: Análisis de algoritmos - ocw.uc3m.esocw.uc3m.es/ingenieria-informatica/estructura-datos-algoritmos/... · Análisis Teórico de Algoritmos ! Reglas generales

Outline

24

} Análisis de Algoritmos } Análisis Empírico de Algoritmos } Análisis Teórico de Algoritmos } Función de tiempo de ejecución

Page 25: Tema 3. Algoritmos I: Análisis de algoritmos - ocw.uc3m.esocw.uc3m.es/ingenieria-informatica/estructura-datos-algoritmos/... · Análisis Teórico de Algoritmos ! Reglas generales

Análisis Teórico de Algoritmos

25

} Toma en cuenta todas las entradas posibles } Pseudocódigo }  Define T(n), función del tiempo de ejecución }  Buscamos la independencia con el entorno de

hardware / software

Page 26: Tema 3. Algoritmos I: Análisis de algoritmos - ocw.uc3m.esocw.uc3m.es/ingenieria-informatica/estructura-datos-algoritmos/... · Análisis Teórico de Algoritmos ! Reglas generales

Análisis Teórico de Algoritmos

26

} Ejecución  de  la  función  del  8empo  T(n)  } Representar  el  8empo  de  ejecución  de  un  algoritmo  en  función  del  tamaño  de  entrada  

} T(n)=  número  de  operaciones  ejecutadas  por  un  algoritmo  para  procesar  una  entrada  según  tamaño  

Page 27: Tema 3. Algoritmos I: Análisis de algoritmos - ocw.uc3m.esocw.uc3m.es/ingenieria-informatica/estructura-datos-algoritmos/... · Análisis Teórico de Algoritmos ! Reglas generales

Análisis Teórico de Algoritmos

27

} Las operaciones primitivas toman una cantidad constante de tiempo

} Ejemplos: } Declaring a variable: int x; } Evaluating an expression: x+3 } Assigning a value to a variable: x=2 }  Indexing into an array: vector[3] } Calling a method: sumGauss(n) } Returning from a method: return x;

Page 28: Tema 3. Algoritmos I: Análisis de algoritmos - ocw.uc3m.esocw.uc3m.es/ingenieria-informatica/estructura-datos-algoritmos/... · Análisis Teórico de Algoritmos ! Reglas generales

28

Análisis Teórico de Algoritmos

}  Reglas generales para la estimación: }  Declaraciones consecutivas: solo agregar los tiempos

de ejecución de las declaraciones consecutivas }  Bucles: el tiempo de ejecución de un bucle es como

máximo el tiempo de ejecución de las instrucciones dentro de ese bucle multiplicado por el número de iteraciones

}  Bucles anidados: el tiempo de ejecución de un bucle anidado que contiene una instrucción en el bucle más interno es el tiempo de ejecución de la instrucción multiplicado por el producto del tamaño de todos los bucles

}  If/Else: Su tiempo de ejecución es, como máximo, el tiempo de las condiciones y el mayor de los tiempos de ejecución de los bloques de instrucciones asociados

Page 29: Tema 3. Algoritmos I: Análisis de algoritmos - ocw.uc3m.esocw.uc3m.es/ingenieria-informatica/estructura-datos-algoritmos/... · Análisis Teórico de Algoritmos ! Reglas generales

Análisis Teórico de Algoritmos

29

# operations 2

2+n+n n 1

TSum(n) = 3n + 5 Este algoritmo requiere 3n + 6 ns para una entrada

de tamaño n

Page 30: Tema 3. Algoritmos I: Análisis de algoritmos - ocw.uc3m.esocw.uc3m.es/ingenieria-informatica/estructura-datos-algoritmos/... · Análisis Teórico de Algoritmos ! Reglas generales

Análisis Teórico de Algoritmos

30

TGauss(n) = 3

La solución de Gauss requiere 3 ns para cualquier entrada

# operations 2 1

Page 31: Tema 3. Algoritmos I: Análisis de algoritmos - ocw.uc3m.esocw.uc3m.es/ingenieria-informatica/estructura-datos-algoritmos/... · Análisis Teórico de Algoritmos ! Reglas generales

Análisis Teórico de Algoritmos

Tsum(n)=3n+5 TGauss(n)=4

Tim

e (n

s)

0

10

20

30

40

50

60

70

0 5 10 15 20 25

TGauss(n) Tsum(n)

Los requisitos de tiempo en función del tamaño del problema n

Page 32: Tema 3. Algoritmos I: Análisis de algoritmos - ocw.uc3m.esocw.uc3m.es/ingenieria-informatica/estructura-datos-algoritmos/... · Análisis Teórico de Algoritmos ! Reglas generales

32

Análisis Teórico de Algoritmos

}  ¿De qué depende T(n)?

Page 33: Tema 3. Algoritmos I: Análisis de algoritmos - ocw.uc3m.esocw.uc3m.es/ingenieria-informatica/estructura-datos-algoritmos/... · Análisis Teórico de Algoritmos ! Reglas generales

33

Análisis Teórico de Algoritmos

}  ¿De qué depende T(n)?

Ø  Tamaño de v Ø  Pero también del valor de x

Page 34: Tema 3. Algoritmos I: Análisis de algoritmos - ocw.uc3m.esocw.uc3m.es/ingenieria-informatica/estructura-datos-algoritmos/... · Análisis Teórico de Algoritmos ! Reglas generales

34

Análisis Teórico de Algoritmos

}  ¿De qué depende T(n)?

¿De qué depende T(n)?

Ø Mejor-caso: x es igual a v[0] Ø  Pero-caso: x no está en v o es igual a v[n-1],

Page 35: Tema 3. Algoritmos I: Análisis de algoritmos - ocw.uc3m.esocw.uc3m.es/ingenieria-informatica/estructura-datos-algoritmos/... · Análisis Teórico de Algoritmos ! Reglas generales

#

int index=-1; 2 int n=v.length; 2

int i=0; 2 i<n && index==-1 n+1

i++ n if (x==v[i])

index=i; 3n

T(n) 5n+7

35

Análisis Teórico de Algoritmos

}  ¿De qué depende T(n)?

Page 36: Tema 3. Algoritmos I: Análisis de algoritmos - ocw.uc3m.esocw.uc3m.es/ingenieria-informatica/estructura-datos-algoritmos/... · Análisis Teórico de Algoritmos ! Reglas generales

36

Análisis Teórico de Algoritmos

} Cuando el tiempo de ejecución depende de una entrada particular, definimos T(n) como el peor-caso de tiempo de ejecución

Page 37: Tema 3. Algoritmos I: Análisis de algoritmos - ocw.uc3m.esocw.uc3m.es/ingenieria-informatica/estructura-datos-algoritmos/... · Análisis Teórico de Algoritmos ! Reglas generales

37

Análisis Teórico de Algoritmos

} T(n) también depende de: 1)  El ordenador en el que se ejecuta el programa 2)  El compilador utilizado para generar el

programa Ø Encontrar una función de aproximación para

T(n), una cota superior

Page 38: Tema 3. Algoritmos I: Análisis de algoritmos - ocw.uc3m.esocw.uc3m.es/ingenieria-informatica/estructura-datos-algoritmos/... · Análisis Teórico de Algoritmos ! Reglas generales

38

Análisis Teórico de Algoritmos

}  Ignorar términos de orden inferior : }  Si n es pequeño, no nos importa }  Si n es grande, los términos inferiores son insignificantes

1

10

100

1000

10000

100000

1000000

10000000

100000000

1E+09

1E+10

1E+11

1E+12

1E+13

1E+14

1 10 100 1000 10000 100000

3n^3

3n^3+2n^3+3n^3+5

(log-log plot)

Page 39: Tema 3. Algoritmos I: Análisis de algoritmos - ocw.uc3m.esocw.uc3m.es/ingenieria-informatica/estructura-datos-algoritmos/... · Análisis Teórico de Algoritmos ! Reglas generales

39

Análisis Teórico de Algoritmos

}  Ignorar términos de orden inferior }  Establecer el coeficiente del término a1

1

100

10000

1000000

100000000

1E+10

1E+12

1E+14

1E+16

1E+18

1E+20

1 10 100 1000 10000 100000 1000000 10000000

n^3 3n^3 3n^3+2n^3+3n^3+5

Page 40: Tema 3. Algoritmos I: Análisis de algoritmos - ocw.uc3m.esocw.uc3m.es/ingenieria-informatica/estructura-datos-algoritmos/... · Análisis Teórico de Algoritmos ! Reglas generales

40

Análisis Teórico de Algoritmos

} Algunos ejemplos:

T(n) Order-of-Growth (Big-O)

n + 2 ~n ½(n+1)(n-1) ~n2

3n+log(n) ~n n(n-1) ~n2

7n4+5n2+1 n4

Page 41: Tema 3. Algoritmos I: Análisis de algoritmos - ocw.uc3m.esocw.uc3m.es/ingenieria-informatica/estructura-datos-algoritmos/... · Análisis Teórico de Algoritmos ! Reglas generales

}  Buenas  no8cias:  un  pequeño  conjunto  de  funciones:  

1  <  log  n  <  n  <  nlog  n  <n2  <n3<…<2n  

Análisis Teórico de Algoritmos

Page 42: Tema 3. Algoritmos I: Análisis de algoritmos - ocw.uc3m.esocw.uc3m.es/ingenieria-informatica/estructura-datos-algoritmos/... · Análisis Teórico de Algoritmos ! Reglas generales

Análisis Teórico de Algoritmos

Ø Ordenes de complejidad eficientes: Order Nombre Descripción Ejemplo 1 Constant Independiente

del tamaño de entrada

Eliminar el primer elemento de una cola

Log2(n) Logaritmic Dividir a la mitad

Búsqueda binaria

n Linear Bucle Suma de elementos de array

nLog2 (n) Linearithmic Divide y vencerás

Mergesort, quicksort

Page 43: Tema 3. Algoritmos I: Análisis de algoritmos - ocw.uc3m.esocw.uc3m.es/ingenieria-informatica/estructura-datos-algoritmos/... · Análisis Teórico de Algoritmos ! Reglas generales

Análisis Teórico de Algoritmos

Ø Ordenes de complejidad eficientes:

1

10

100

1000

10000

100000

1000000

10000000

5 10 20 40 80 160 320 640 1280 2560 5120 10240 20480 40960 81920 163840 327680

nLog2(n)

Log2(n)

1

n

Page 44: Tema 3. Algoritmos I: Análisis de algoritmos - ocw.uc3m.esocw.uc3m.es/ingenieria-informatica/estructura-datos-algoritmos/... · Análisis Teórico de Algoritmos ! Reglas generales

Análisis Teórico de Algoritmos

Ø Ordenes de complejidad manejables:

Order Nombre Descripción

Ejemplo

n2 Cuadrático Doble bucle Agrega dos matrices; ordenamiento de burbuja

n3 Cúbico Triple bucle Multiplicar dos matrices

Page 45: Tema 3. Algoritmos I: Análisis de algoritmos - ocw.uc3m.esocw.uc3m.es/ingenieria-informatica/estructura-datos-algoritmos/... · Análisis Teórico de Algoritmos ! Reglas generales

Análisis Teórico de Algoritmos

Ø Ordenes de complejidad manejables:

n3

0

50

100

150

200

250

n2

Page 46: Tema 3. Algoritmos I: Análisis de algoritmos - ocw.uc3m.esocw.uc3m.es/ingenieria-informatica/estructura-datos-algoritmos/... · Análisis Teórico de Algoritmos ! Reglas generales

Análisis Teórico de Algoritmos

Ø Ordenes de complejidad no manejables:

Order Nombre Descripción

Ejemplo

kn Exponencial Búsqueda exhaustiva

Adivinar una contraseña

n! Factorial Búsqueda de fuerza bruta

Enumerar todas las particiones de un conjunto

Page 47: Tema 3. Algoritmos I: Análisis de algoritmos - ocw.uc3m.esocw.uc3m.es/ingenieria-informatica/estructura-datos-algoritmos/... · Análisis Teórico de Algoritmos ! Reglas generales

Análisis Teórico de Algoritmos

Ø Ordenes de complejidad no manejables:

n!

2n

1

10

100

1000

10000

100000

Page 48: Tema 3. Algoritmos I: Análisis de algoritmos - ocw.uc3m.esocw.uc3m.es/ingenieria-informatica/estructura-datos-algoritmos/... · Análisis Teórico de Algoritmos ! Reglas generales

} Más  ejemplos:  }  T(n)=4  ∈  O(1).  }  T(n)=3n+4  ∈  O(n).  }  T(n)=5n²+  27n  +  1005  ∈  O(n²).  }  T(n)=10n³+  2n²  +  7n  +  1  ∈  O(n³).  }  T(n)=n!+  n⁵  ∈  O(n!).  

Análisis Teórico de Algoritmos

Page 49: Tema 3. Algoritmos I: Análisis de algoritmos - ocw.uc3m.esocw.uc3m.es/ingenieria-informatica/estructura-datos-algoritmos/... · Análisis Teórico de Algoritmos ! Reglas generales

Ejercicios

Ø  Verdadero  o  falso?   3 ∈ O(1)

logn + 10 ∈ O(n)

5logn ∈ O(logn)

3n + 10 ∈ O (n)

4n + 7 ∈ O (n2)

n + logn ∈ O(n)

7n + nlogn ∈ O(n)

5n + nlogn ∈ O(nlogn)

4n2 ∈ O(n2)

3n4 + 2n3 ∈ O(n4)

7n4 + n3 ∈ O(n3) 49

Page 50: Tema 3. Algoritmos I: Análisis de algoritmos - ocw.uc3m.esocw.uc3m.es/ingenieria-informatica/estructura-datos-algoritmos/... · Análisis Teórico de Algoritmos ! Reglas generales

Ejercicio Calculate T(n)

Page 51: Tema 3. Algoritmos I: Análisis de algoritmos - ocw.uc3m.esocw.uc3m.es/ingenieria-informatica/estructura-datos-algoritmos/... · Análisis Teórico de Algoritmos ! Reglas generales

}  Representar  gráficamente  las  siguientes  funciones  de  T(n)  y  discu8r:    }  T(n)=4  }  T(n)=3n+4.  }  T(n)=n²+  2.  }  T(n)=n³+  4n  +  1.  }  T(n)=n!+  n⁵.  

} Use  Excel  (tal  vez  tenga  que  usar  la  escala  Log-­‐log).  

Ejercicios

Page 52: Tema 3. Algoritmos I: Análisis de algoritmos - ocw.uc3m.esocw.uc3m.es/ingenieria-informatica/estructura-datos-algoritmos/... · Análisis Teórico de Algoritmos ! Reglas generales

Ejercicio – Búsqueda binaria

}  Encontrar la posición de un elemento x dentro de una array ordenado v.

} Calcular su T(n) y su Big-O.

52

Page 53: Tema 3. Algoritmos I: Análisis de algoritmos - ocw.uc3m.esocw.uc3m.es/ingenieria-informatica/estructura-datos-algoritmos/... · Análisis Teórico de Algoritmos ! Reglas generales