notación asintótica 2alram/comp_algo/clase5.pdf · alonso ramirez manzanares computación y...

81
Alonso Ramirez Manzanares Computación y Algoritmos 14.02 Notación Asintótica 2 mat-151 1 Tuesday, February 14, 17

Upload: doandien

Post on 23-Sep-2018

230 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Notación Asintótica 2alram/comp_algo/clase5.pdf · Alonso Ramirez Manzanares Computación y Algoritmos 14.02 Notación Asintótica 2 mat-151 1 Tuesday, February 14, 17

Alonso Ramirez Manzanares Computación y Algoritmos 14.02

Notación Asintótica 2

mat-151

1

Tuesday, February 14, 17

Page 2: Notación Asintótica 2alram/comp_algo/clase5.pdf · Alonso Ramirez Manzanares Computación y Algoritmos 14.02 Notación Asintótica 2 mat-151 1 Tuesday, February 14, 17

Alonso Ramirez Manzanares Computación y Algoritmos 14.02

É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 en función de N?

int i,k,count=0;

for(i=0; i<N; i++)

for(k=0; k<N; k++)

count ++;

Tuesday, February 14, 17

Page 3: Notación Asintótica 2alram/comp_algo/clase5.pdf · Alonso Ramirez Manzanares Computación y Algoritmos 14.02 Notación Asintótica 2 mat-151 1 Tuesday, February 14, 17

Alonso Ramirez Manzanares Computación y Algoritmos 14.02

Notación asintótica

• Comportamiento asintótico: comportamiento cuando , donde n es el tamaño del problema.

• Tres notaciones básicas:

15

Tuesday, February 14, 17

Page 4: Notación Asintótica 2alram/comp_algo/clase5.pdf · Alonso Ramirez Manzanares Computación y Algoritmos 14.02 Notación Asintótica 2 mat-151 1 Tuesday, February 14, 17

Alonso Ramirez Manzanares Computación y Algoritmos 14.02

Notación asintótica (equivalentes)

• Ejemplo:

• es una relación de equivalencia:

➡Transitiva:

➡Reflexiva:

➡Simétrica:

• Idea básica: tomar en cuenta solo los términos principales, ignorando aquellos que crecen más lento.

16

Para n grande son muy parecidas

Tuesday, February 14, 17

Page 5: Notación Asintótica 2alram/comp_algo/clase5.pdf · Alonso Ramirez Manzanares Computación y Algoritmos 14.02 Notación Asintótica 2 mat-151 1 Tuesday, February 14, 17

Alonso Ramirez Manzanares Computación y Algoritmos 14.02

Notación asintótica (equivalentes)

• Ejemplo:

• es una relación de equivalencia:

➡Transitiva:

➡Reflexiva:

➡Simétrica:

• Idea básica: tomar en cuenta solo los términos principales, ignorando aquellos que crecen más lento.

16

0

75000000000

150000000000

225000000000

300000000000

Para n grande son muy parecidas

Tuesday, February 14, 17

Page 6: Notación Asintótica 2alram/comp_algo/clase5.pdf · Alonso Ramirez Manzanares Computación y Algoritmos 14.02 Notación Asintótica 2 mat-151 1 Tuesday, February 14, 17

Alonso Ramirez Manzanares Computación y Algoritmos 14.02

Notación asintótica (dominada)

•i.e., está eventualmente acotado por un valor finito.

•Idea básica: f crece más lento que g, o tan rápido como g.

•Transitivo:

•Reflexivo:

17

Tuesday, February 14, 17

Page 7: Notación Asintótica 2alram/comp_algo/clase5.pdf · Alonso Ramirez Manzanares Computación y Algoritmos 14.02 Notación Asintótica 2 mat-151 1 Tuesday, February 14, 17

Alonso Ramirez Manzanares Computación y Algoritmos 14.02

Notación asintótica (respectivamente acotadas)

➡ Ejemplos:

➡ es una relación de equivalencia.

18

Tuesday, February 14, 17

Page 8: Notación Asintótica 2alram/comp_algo/clase5.pdf · Alonso Ramirez Manzanares Computación y Algoritmos 14.02 Notación Asintótica 2 mat-151 1 Tuesday, February 14, 17

Alonso Ramirez Manzanares Computación y Algoritmos 14.02

Notación O grande

19

Tuesday, February 14, 17

Page 9: Notación Asintótica 2alram/comp_algo/clase5.pdf · Alonso Ramirez Manzanares Computación y Algoritmos 14.02 Notación Asintótica 2 mat-151 1 Tuesday, February 14, 17

Alonso Ramirez Manzanares Computación y Algoritmos 14.02

Notación O grande

• Se lee: “T(n) es de orden f(n)”

19

Tuesday, February 14, 17

Page 10: Notación Asintótica 2alram/comp_algo/clase5.pdf · Alonso Ramirez Manzanares Computación y Algoritmos 14.02 Notación Asintótica 2 mat-151 1 Tuesday, February 14, 17

Alonso Ramirez Manzanares Computación y Algoritmos 14.02

Notación O grande

• Se lee: “T(n) es de orden f(n)”

• T(n) no crece más rápido que f(n)

19

Tuesday, February 14, 17

Page 11: Notación Asintótica 2alram/comp_algo/clase5.pdf · Alonso Ramirez Manzanares Computación y Algoritmos 14.02 Notación Asintótica 2 mat-151 1 Tuesday, February 14, 17

Alonso Ramirez Manzanares Computación y Algoritmos 14.02

Notación O grande

• Se lee: “T(n) es de orden f(n)”

• T(n) no crece más rápido que f(n)

19

Tuesday, February 14, 17

Page 12: Notación Asintótica 2alram/comp_algo/clase5.pdf · Alonso Ramirez Manzanares Computación y Algoritmos 14.02 Notación Asintótica 2 mat-151 1 Tuesday, February 14, 17

Alonso Ramirez Manzanares Computación y Algoritmos 14.02

Notación O grande

20

0

22.5

45.0

67.5

90.0

0.1 0.3 0.5 0.7 0.9 1.1 1.3 1.5 1.7 1.9 2.1 2.3 2.5 2.7 2.9

FuncionNotacion O grande

Tuesday, February 14, 17

Page 13: Notación Asintótica 2alram/comp_algo/clase5.pdf · Alonso Ramirez Manzanares Computación y Algoritmos 14.02 Notación Asintótica 2 mat-151 1 Tuesday, February 14, 17

Alonso Ramirez Manzanares Computación y Algoritmos 14.02

Notación O grande

• porque haciendo (c,n0) = (3,2) verificamos que para n≥2

20

0

22.5

45.0

67.5

90.0

0.1 0.3 0.5 0.7 0.9 1.1 1.3 1.5 1.7 1.9 2.1 2.3 2.5 2.7 2.9

FuncionNotacion O grande

Tuesday, February 14, 17

Page 14: Notación Asintótica 2alram/comp_algo/clase5.pdf · Alonso Ramirez Manzanares Computación y Algoritmos 14.02 Notación Asintótica 2 mat-151 1 Tuesday, February 14, 17

Alonso Ramirez Manzanares Computación y Algoritmos 14.02

Notación O grande

• porque haciendo (c,n0) = (3,2) verificamos que para n≥2

20

0

22.5

45.0

67.5

90.0

0.1 0.3 0.5 0.7 0.9 1.1 1.3 1.5 1.7 1.9 2.1 2.3 2.5 2.7 2.9

FuncionNotacion O grande

Tuesday, February 14, 17

Page 15: Notación Asintótica 2alram/comp_algo/clase5.pdf · Alonso Ramirez Manzanares Computación y Algoritmos 14.02 Notación Asintótica 2 mat-151 1 Tuesday, February 14, 17

Alonso Ramirez Manzanares Computación y Algoritmos 14.02

Notación O grande

• porque haciendo (c,n0) = (3,2) verificamos que para n≥2

20

0

22.5

45.0

67.5

90.0

0.1 0.3 0.5 0.7 0.9 1.1 1.3 1.5 1.7 1.9 2.1 2.3 2.5 2.7 2.9

FuncionNotacion O grande

Tuesday, February 14, 17

Page 16: Notación Asintótica 2alram/comp_algo/clase5.pdf · Alonso Ramirez Manzanares Computación y Algoritmos 14.02 Notación Asintótica 2 mat-151 1 Tuesday, February 14, 17

Alonso Ramirez Manzanares Computación y Algoritmos 14.02

Notación O grande

• La notación O grande permite definir un límite superior al crecimiento de una función.

• Establece un “orden” entre funciones:

21

Tuesday, February 14, 17

Page 17: Notación Asintótica 2alram/comp_algo/clase5.pdf · Alonso Ramirez Manzanares Computación y Algoritmos 14.02 Notación Asintótica 2 mat-151 1 Tuesday, February 14, 17

Alonso Ramirez Manzanares Computación y Algoritmos 14.02 5

Tuesday, February 14, 17

Page 18: Notación Asintótica 2alram/comp_algo/clase5.pdf · Alonso Ramirez Manzanares Computación y Algoritmos 14.02 Notación Asintótica 2 mat-151 1 Tuesday, February 14, 17

Alonso Ramirez Manzanares Computación y Algoritmos 14.02

Notación O grande

• Considerar funciones que sean lo más pequeñas posibles:

6

Tuesday, February 14, 17

Page 19: Notación Asintótica 2alram/comp_algo/clase5.pdf · Alonso Ramirez Manzanares Computación y Algoritmos 14.02 Notación Asintótica 2 mat-151 1 Tuesday, February 14, 17

Alonso Ramirez Manzanares Computación y Algoritmos 14.02

Notación O grande

• Considerar funciones que sean lo más pequeñas posibles:

6

Tuesday, February 14, 17

Page 20: Notación Asintótica 2alram/comp_algo/clase5.pdf · Alonso Ramirez Manzanares Computación y Algoritmos 14.02 Notación Asintótica 2 mat-151 1 Tuesday, February 14, 17

Alonso Ramirez Manzanares Computación y Algoritmos 14.02

Notación O grande

• Considerar funciones que sean lo más pequeñas posibles:

6

• Si T(n) es un polinomio de grado g, entonces T(n) = O(ng): se pueden “olvidar” los términos de grado inferior y las constantes.

Tuesday, February 14, 17

Page 21: Notación Asintótica 2alram/comp_algo/clase5.pdf · Alonso Ramirez Manzanares Computación y Algoritmos 14.02 Notación Asintótica 2 mat-151 1 Tuesday, February 14, 17

Alonso Ramirez Manzanares Computación y Algoritmos 14.02

Notación O grande

• Considerar funciones que sean lo más pequeñas posibles:

6

• Si T(n) es un polinomio de grado g, entonces T(n) = O(ng): se pueden “olvidar” los términos de grado inferior y las constantes.

• Usar la clase de funciones más chica: 2n es O(n), aunque sea también O(n2)

Tuesday, February 14, 17

Page 22: Notación Asintótica 2alram/comp_algo/clase5.pdf · Alonso Ramirez Manzanares Computación y Algoritmos 14.02 Notación Asintótica 2 mat-151 1 Tuesday, February 14, 17

Alonso Ramirez Manzanares Computación y Algoritmos 14.02

Notación O grande

• Considerar funciones que sean lo más pequeñas posibles:

6

• Si T(n) es un polinomio de grado g, entonces T(n) = O(ng): se pueden “olvidar” los términos de grado inferior y las constantes.

• Usar la clase de funciones más chica: 2n es O(n), aunque sea también O(n2)

• Usar la expresión más simple

Tuesday, February 14, 17

Page 23: Notación Asintótica 2alram/comp_algo/clase5.pdf · Alonso Ramirez Manzanares Computación y Algoritmos 14.02 Notación Asintótica 2 mat-151 1 Tuesday, February 14, 17

Alonso Ramirez Manzanares Computación y Algoritmos 14.02

Notación Ω

7

Tuesday, February 14, 17

Page 24: Notación Asintótica 2alram/comp_algo/clase5.pdf · Alonso Ramirez Manzanares Computación y Algoritmos 14.02 Notación Asintótica 2 mat-151 1 Tuesday, February 14, 17

Alonso Ramirez Manzanares Computación y Algoritmos 14.02

Notación Ω

• Presenta la cota asintótica inferior de una función.

7

Tuesday, February 14, 17

Page 25: Notación Asintótica 2alram/comp_algo/clase5.pdf · Alonso Ramirez Manzanares Computación y Algoritmos 14.02 Notación Asintótica 2 mat-151 1 Tuesday, February 14, 17

Alonso Ramirez Manzanares Computación y Algoritmos 14.02

Notación Ω

• Presenta la cota asintótica inferior de una función.

• Se usa generalmente para acotar el tiempo de ejecución en el mejor caso.

7

Tuesday, February 14, 17

Page 26: Notación Asintótica 2alram/comp_algo/clase5.pdf · Alonso Ramirez Manzanares Computación y Algoritmos 14.02 Notación Asintótica 2 mat-151 1 Tuesday, February 14, 17

Alonso Ramirez Manzanares Computación y Algoritmos 14.02

Notación Ω

• Presenta la cota asintótica inferior de una función.

• Se usa generalmente para acotar el tiempo de ejecución en el mejor caso.

• Cuando decimos que el tiempo de ejecución de un algoritmo es Ω(g(n)), decimos que sin importar la entrada de tamaño n, el tiempo de cálculo para esa entrada es al menos una constante multiplicativa de g(n), para una n suficientemente grande.

7

Tuesday, February 14, 17

Page 27: Notación Asintótica 2alram/comp_algo/clase5.pdf · Alonso Ramirez Manzanares Computación y Algoritmos 14.02 Notación Asintótica 2 mat-151 1 Tuesday, February 14, 17

Alonso Ramirez Manzanares Computación y Algoritmos 14.02

Notación Ω

• Presenta la cota asintótica inferior de una función.

• Se usa generalmente para acotar el tiempo de ejecución en el mejor caso.

• Cuando decimos que el tiempo de ejecución de un algoritmo es Ω(g(n)), decimos que sin importar la entrada de tamaño n, el tiempo de cálculo para esa entrada es al menos una constante multiplicativa de g(n), para una n suficientemente grande.

7

Tuesday, February 14, 17

Page 28: Notación Asintótica 2alram/comp_algo/clase5.pdf · Alonso Ramirez Manzanares Computación y Algoritmos 14.02 Notación Asintótica 2 mat-151 1 Tuesday, February 14, 17

Alonso Ramirez Manzanares Computación y Algoritmos 14.02

Notación Θ

8

Tuesday, February 14, 17

Page 29: Notación Asintótica 2alram/comp_algo/clase5.pdf · Alonso Ramirez Manzanares Computación y Algoritmos 14.02 Notación Asintótica 2 mat-151 1 Tuesday, February 14, 17

Alonso Ramirez Manzanares Computación y Algoritmos 14.02

Notación Θ

8

Tuesday, February 14, 17

Page 30: Notación Asintótica 2alram/comp_algo/clase5.pdf · Alonso Ramirez Manzanares Computación y Algoritmos 14.02 Notación Asintótica 2 mat-151 1 Tuesday, February 14, 17

Alonso Ramirez Manzanares Computación y Algoritmos 14.02

Notación Θ

9

Tuesday, February 14, 17

Page 31: Notación Asintótica 2alram/comp_algo/clase5.pdf · Alonso Ramirez Manzanares Computación y Algoritmos 14.02 Notación Asintótica 2 mat-151 1 Tuesday, February 14, 17

Alonso Ramirez Manzanares Computación y Algoritmos 14.02

Notación Θ

9

Tuesday, February 14, 17

Page 32: Notación Asintótica 2alram/comp_algo/clase5.pdf · Alonso Ramirez Manzanares Computación y Algoritmos 14.02 Notación Asintótica 2 mat-151 1 Tuesday, February 14, 17

Alonso Ramirez Manzanares Computación y Algoritmos 14.02

Notación Θ

9

Tuesday, February 14, 17

Page 33: Notación Asintótica 2alram/comp_algo/clase5.pdf · Alonso Ramirez Manzanares Computación y Algoritmos 14.02 Notación Asintótica 2 mat-151 1 Tuesday, February 14, 17

Alonso Ramirez Manzanares Computación y Algoritmos 14.02

Notación Θ

9

Tuesday, February 14, 17

Page 34: Notación Asintótica 2alram/comp_algo/clase5.pdf · Alonso Ramirez Manzanares Computación y Algoritmos 14.02 Notación Asintótica 2 mat-151 1 Tuesday, February 14, 17

Alonso Ramirez Manzanares Computación y Algoritmos 14.02

Notación Θ

9

Tuesday, February 14, 17

Page 35: Notación Asintótica 2alram/comp_algo/clase5.pdf · Alonso Ramirez Manzanares Computación y Algoritmos 14.02 Notación Asintótica 2 mat-151 1 Tuesday, February 14, 17

Alonso Ramirez Manzanares Computación y Algoritmos 14.02

Notación Θ

9

Tuesday, February 14, 17

Page 36: Notación Asintótica 2alram/comp_algo/clase5.pdf · Alonso Ramirez Manzanares Computación y Algoritmos 14.02 Notación Asintótica 2 mat-151 1 Tuesday, February 14, 17

Alonso Ramirez Manzanares Computación y Algoritmos 14.02

Notación Θ

9

Tuesday, February 14, 17

Page 37: Notación Asintótica 2alram/comp_algo/clase5.pdf · Alonso Ramirez Manzanares Computación y Algoritmos 14.02 Notación Asintótica 2 mat-151 1 Tuesday, February 14, 17

Alonso Ramirez Manzanares Computación y Algoritmos 14.02

Notación Θ

10

Tuesday, February 14, 17

Page 38: Notación Asintótica 2alram/comp_algo/clase5.pdf · Alonso Ramirez Manzanares Computación y Algoritmos 14.02 Notación Asintótica 2 mat-151 1 Tuesday, February 14, 17

Alonso Ramirez Manzanares Computación y Algoritmos 14.02

Notación asintótica (propiedades)

• Transitividad

11

Tuesday, February 14, 17

Page 39: Notación Asintótica 2alram/comp_algo/clase5.pdf · Alonso Ramirez Manzanares Computación y Algoritmos 14.02 Notación Asintótica 2 mat-151 1 Tuesday, February 14, 17

Alonso Ramirez Manzanares Computación y Algoritmos 14.02

Notación asintótica (propiedades)

• Transitividad

11

Prueba:

Tuesday, February 14, 17

Page 40: Notación Asintótica 2alram/comp_algo/clase5.pdf · Alonso Ramirez Manzanares Computación y Algoritmos 14.02 Notación Asintótica 2 mat-151 1 Tuesday, February 14, 17

Alonso Ramirez Manzanares Computación y Algoritmos 14.02

Notación asintótica (propiedades)

• Suma

• Prueba:

12

Tuesday, February 14, 17

Page 41: Notación Asintótica 2alram/comp_algo/clase5.pdf · Alonso Ramirez Manzanares Computación y Algoritmos 14.02 Notación Asintótica 2 mat-151 1 Tuesday, February 14, 17

Alonso Ramirez Manzanares Computación y Algoritmos 14.02

Notación asintótica (propiedades)

• Suma

• Prueba:

12

Tuesday, February 14, 17

Page 42: Notación Asintótica 2alram/comp_algo/clase5.pdf · Alonso Ramirez Manzanares Computación y Algoritmos 14.02 Notación Asintótica 2 mat-151 1 Tuesday, February 14, 17

Alonso Ramirez Manzanares Computación y Algoritmos 14.02

Notación asintótica (propiedades)

• Producto

13

Tuesday, February 14, 17

Page 43: Notación Asintótica 2alram/comp_algo/clase5.pdf · Alonso Ramirez Manzanares Computación y Algoritmos 14.02 Notación Asintótica 2 mat-151 1 Tuesday, February 14, 17

Alonso Ramirez Manzanares Computación y Algoritmos 14.02

Notación asintótica (propiedades)

• Producto

13

Prueba

Tuesday, February 14, 17

Page 44: Notación Asintótica 2alram/comp_algo/clase5.pdf · Alonso Ramirez Manzanares Computación y Algoritmos 14.02 Notación Asintótica 2 mat-151 1 Tuesday, February 14, 17

Alonso Ramirez Manzanares Computación y Algoritmos 14.02

Notación asintótica (propiedades)

14

=

=

Tuesday, February 14, 17

Page 45: Notación Asintótica 2alram/comp_algo/clase5.pdf · Alonso Ramirez Manzanares Computación y Algoritmos 14.02 Notación Asintótica 2 mat-151 1 Tuesday, February 14, 17

Alonso Ramirez Manzanares Computación y Algoritmos 14.02

Ejemplos de análisis de algortimos

15

Tuesday, February 14, 17

Page 46: Notación Asintótica 2alram/comp_algo/clase5.pdf · Alonso Ramirez Manzanares Computación y Algoritmos 14.02 Notación Asintótica 2 mat-151 1 Tuesday, February 14, 17

Alonso Ramirez Manzanares Computación y Algoritmos 14.02

Ejemplos de análisis de algortimos

• Análisis del algoritmo de búsqueda secuencial y búsqueda binaria.

15

Tuesday, February 14, 17

Page 47: Notación Asintótica 2alram/comp_algo/clase5.pdf · Alonso Ramirez Manzanares Computación y Algoritmos 14.02 Notación Asintótica 2 mat-151 1 Tuesday, February 14, 17

Alonso Ramirez Manzanares Computación y Algoritmos 14.02

Ejemplos de análisis de algortimos

• Análisis del algoritmo de búsqueda secuencial y búsqueda binaria.

• Suponemos que la entrada son números enteros

15

Tuesday, February 14, 17

Page 48: Notación Asintótica 2alram/comp_algo/clase5.pdf · Alonso Ramirez Manzanares Computación y Algoritmos 14.02 Notación Asintótica 2 mat-151 1 Tuesday, February 14, 17

Alonso Ramirez Manzanares Computación y Algoritmos 14.02

Ejemplos de análisis de algortimos

• Análisis del algoritmo de búsqueda secuencial y búsqueda binaria.

• Suponemos que la entrada son números enteros

• Compañía de tarjetas de crédito, N tarjetas robadas, M transacciones a verificar.

15

Tuesday, February 14, 17

Page 49: Notación Asintótica 2alram/comp_algo/clase5.pdf · Alonso Ramirez Manzanares Computación y Algoritmos 14.02 Notación Asintótica 2 mat-151 1 Tuesday, February 14, 17

Alonso Ramirez Manzanares Computación y Algoritmos 14.02

Ejemplos de análisis de algortimos

• Análisis del algoritmo de búsqueda secuencial y búsqueda binaria.

• Suponemos que la entrada son números enteros

• Compañía de tarjetas de crédito, N tarjetas robadas, M transacciones a verificar.

• N del orden de (103 a 106)

15

Tuesday, February 14, 17

Page 50: Notación Asintótica 2alram/comp_algo/clase5.pdf · Alonso Ramirez Manzanares Computación y Algoritmos 14.02 Notación Asintótica 2 mat-151 1 Tuesday, February 14, 17

Alonso Ramirez Manzanares Computación y Algoritmos 14.02

Ejemplos de análisis de algortimos

• Análisis del algoritmo de búsqueda secuencial y búsqueda binaria.

• Suponemos que la entrada son números enteros

• Compañía de tarjetas de crédito, N tarjetas robadas, M transacciones a verificar.

• N del orden de (103 a 106)

• M del orden de (106 a 109)

15

Tuesday, February 14, 17

Page 51: Notación Asintótica 2alram/comp_algo/clase5.pdf · Alonso Ramirez Manzanares Computación y Algoritmos 14.02 Notación Asintótica 2 mat-151 1 Tuesday, February 14, 17

Alonso Ramirez Manzanares Computación y Algoritmos 14.02

Ejemplos de análisis de algortimos

• Análisis del algoritmo de búsqueda secuencial y búsqueda binaria.

• Suponemos que la entrada son números enteros

• Compañía de tarjetas de crédito, N tarjetas robadas, M transacciones a verificar.

• N del orden de (103 a 106)

• M del orden de (106 a 109)

• Estimar el tiempo de cálculo cuando los parámetros caen en estos rangos.

15

Tuesday, February 14, 17

Page 52: Notación Asintótica 2alram/comp_algo/clase5.pdf · Alonso Ramirez Manzanares Computación y Algoritmos 14.02 Notación Asintótica 2 mat-151 1 Tuesday, February 14, 17

Alonso Ramirez Manzanares Computación y Algoritmos 14.02

Búsqueda secuencial

• int search ( int a[], int v, int l, int r )• {

•for ( int i=l; i<=r; i++ )•if( v == a[i]) return i;

•return -1;• }

16

Tuesday, February 14, 17

Page 53: Notación Asintótica 2alram/comp_algo/clase5.pdf · Alonso Ramirez Manzanares Computación y Algoritmos 14.02 Notación Asintótica 2 mat-151 1 Tuesday, February 14, 17

Alonso Ramirez Manzanares Computación y Algoritmos 14.02

Búsqueda secuencial

• int search ( int a[], int v, int l, int r )• {

•for ( int i=l; i<=r; i++ )•if( v == a[i]) return i;

•return -1;• }

• El tiempo de ejecución depende si el objeto buscado está en el arreglo o no.

16

Tuesday, February 14, 17

Page 54: Notación Asintótica 2alram/comp_algo/clase5.pdf · Alonso Ramirez Manzanares Computación y Algoritmos 14.02 Notación Asintótica 2 mat-151 1 Tuesday, February 14, 17

Alonso Ramirez Manzanares Computación y Algoritmos 14.02

Búsqueda secuencial

• int search ( int a[], int v, int l, int r )• {

•for ( int i=l; i<=r; i++ )•if( v == a[i]) return i;

•return -1;• }

• El tiempo de ejecución depende si el objeto buscado está en el arreglo o no.

• Podemos decir que no está después de recorrer todo el arreglo, o encontrarlo en la primera, segunda, tercera o cualquiera de las posiciones.

16

Tuesday, February 14, 17

Page 55: Notación Asintótica 2alram/comp_algo/clase5.pdf · Alonso Ramirez Manzanares Computación y Algoritmos 14.02 Notación Asintótica 2 mat-151 1 Tuesday, February 14, 17

Alonso Ramirez Manzanares Computación y Algoritmos 14.02

Búsqueda secuencial

• int search ( int a[], int v, int l, int r )• {

•for ( int i=l; i<=r; i++ )•if( v == a[i]) return i;

•return -1;• }

• El tiempo de ejecución depende si el objeto buscado está en el arreglo o no.

• Podemos decir que no está después de recorrer todo el arreglo, o encontrarlo en la primera, segunda, tercera o cualquiera de las posiciones.

• Para hacer una predicción se necesita una entrada adecuada a la aplicación.

16

Tuesday, February 14, 17

Page 56: Notación Asintótica 2alram/comp_algo/clase5.pdf · Alonso Ramirez Manzanares Computación y Algoritmos 14.02 Notación Asintótica 2 mat-151 1 Tuesday, February 14, 17

Alonso Ramirez Manzanares Computación y Algoritmos 14.02

Búsqueda secuencial

17

Tuesday, February 14, 17

Page 57: Notación Asintótica 2alram/comp_algo/clase5.pdf · Alonso Ramirez Manzanares Computación y Algoritmos 14.02 Notación Asintótica 2 mat-151 1 Tuesday, February 14, 17

Alonso Ramirez Manzanares Computación y Algoritmos 14.02

Búsqueda secuencial

• Tomamos el caso de número encontrado o no encontrado y los analizamos separadamente.

17

Tuesday, February 14, 17

Page 58: Notación Asintótica 2alram/comp_algo/clase5.pdf · Alonso Ramirez Manzanares Computación y Algoritmos 14.02 Notación Asintótica 2 mat-151 1 Tuesday, February 14, 17

Alonso Ramirez Manzanares Computación y Algoritmos 14.02

Búsqueda secuencial

• Tomamos el caso de número encontrado o no encontrado y los analizamos separadamente.

Propiedad 1: La búsqueda secuencial examina M números para cada número no encontrado y en promedio M/2 posiciones para cada búsqueda exitosa.

17

Tuesday, February 14, 17

Page 59: Notación Asintótica 2alram/comp_algo/clase5.pdf · Alonso Ramirez Manzanares Computación y Algoritmos 14.02 Notación Asintótica 2 mat-151 1 Tuesday, February 14, 17

Alonso Ramirez Manzanares Computación y Algoritmos 14.02

Búsqueda secuencial

• Tomamos el caso de número encontrado o no encontrado y los analizamos separadamente.

Propiedad 1: La búsqueda secuencial examina M números para cada número no encontrado y en promedio M/2 posiciones para cada búsqueda exitosa.

Si cada número en el arreglo tiene la misma probabilidad de ser el número buscado, entonces: (1+2+ ... + M)/M = (M+1)/2 es el costo promedio de la búsqueda.

17

Tuesday, February 14, 17

Page 60: Notación Asintótica 2alram/comp_algo/clase5.pdf · Alonso Ramirez Manzanares Computación y Algoritmos 14.02 Notación Asintótica 2 mat-151 1 Tuesday, February 14, 17

Alonso Ramirez Manzanares Computación y Algoritmos 14.02

Búsqueda secuencial

• Tomamos el caso de número encontrado o no encontrado y los analizamos separadamente.

Propiedad 1: La búsqueda secuencial examina M números para cada número no encontrado y en promedio M/2 posiciones para cada búsqueda exitosa.

Si cada número en el arreglo tiene la misma probabilidad de ser el número buscado, entonces: (1+2+ ... + M)/M = (M+1)/2 es el costo promedio de la búsqueda.

• Esto implica que cada búsqueda es proporcional a M, suponiendo que la comparación entre dos números es constante: si duplicamos el número de transacciones, duplicamos el tiempo de cálculo.

17

Tuesday, February 14, 17

Page 61: Notación Asintótica 2alram/comp_algo/clase5.pdf · Alonso Ramirez Manzanares Computación y Algoritmos 14.02 Notación Asintótica 2 mat-151 1 Tuesday, February 14, 17

Alonso Ramirez Manzanares Computación y Algoritmos 14.02

Búsqueda secuencial

18

Tuesday, February 14, 17

Page 62: Notación Asintótica 2alram/comp_algo/clase5.pdf · Alonso Ramirez Manzanares Computación y Algoritmos 14.02 Notación Asintótica 2 mat-151 1 Tuesday, February 14, 17

Alonso Ramirez Manzanares Computación y Algoritmos 14.02

Búsqueda secuencial

• ¿Cómo acelerar la búsqueda?

18

Tuesday, February 14, 17

Page 63: Notación Asintótica 2alram/comp_algo/clase5.pdf · Alonso Ramirez Manzanares Computación y Algoritmos 14.02 Notación Asintótica 2 mat-151 1 Tuesday, February 14, 17

Alonso Ramirez Manzanares Computación y Algoritmos 14.02

Búsqueda secuencial

• ¿Cómo acelerar la búsqueda?

•¡ORDENANDO LA LISTA!

18

Tuesday, February 14, 17

Page 64: Notación Asintótica 2alram/comp_algo/clase5.pdf · Alonso Ramirez Manzanares Computación y Algoritmos 14.02 Notación Asintótica 2 mat-151 1 Tuesday, February 14, 17

Alonso Ramirez Manzanares Computación y Algoritmos 14.02

Búsqueda secuencial

• ¿Cómo acelerar la búsqueda?

•¡ORDENANDO LA LISTA!

•Veremos algoritmos de ordenamiento de O(M logM), adecuado dado el tamaño de N.

18

Tuesday, February 14, 17

Page 65: Notación Asintótica 2alram/comp_algo/clase5.pdf · Alonso Ramirez Manzanares Computación y Algoritmos 14.02 Notación Asintótica 2 mat-151 1 Tuesday, February 14, 17

Alonso Ramirez Manzanares Computación y Algoritmos 14.02

Búsqueda secuencial

• ¿Cómo acelerar la búsqueda?

•¡ORDENANDO LA LISTA!

•Veremos algoritmos de ordenamiento de O(M logM), adecuado dado el tamaño de N.

• Con una lista ordenada se puede terminar la búsqueda al llegar al primer número más grande al que buscamos.

18

Tuesday, February 14, 17

Page 66: Notación Asintótica 2alram/comp_algo/clase5.pdf · Alonso Ramirez Manzanares Computación y Algoritmos 14.02 Notación Asintótica 2 mat-151 1 Tuesday, February 14, 17

Alonso Ramirez Manzanares Computación y Algoritmos 14.02

Búsqueda secuencial

• ¿Cómo acelerar la búsqueda?

•¡ORDENANDO LA LISTA!

•Veremos algoritmos de ordenamiento de O(M logM), adecuado dado el tamaño de N.

• Con una lista ordenada se puede terminar la búsqueda al llegar al primer número más grande al que buscamos.

• Esto reduce el costo a cerca de M/2 para una búsqueda no exitosa, lo mismo que era para la búsqueda exitosa.

18

Tuesday, February 14, 17

Page 67: Notación Asintótica 2alram/comp_algo/clase5.pdf · Alonso Ramirez Manzanares Computación y Algoritmos 14.02 Notación Asintótica 2 mat-151 1 Tuesday, February 14, 17

Alonso Ramirez Manzanares Computación y Algoritmos 14.02

Búsqueda secuencial

• ¿Cómo acelerar la búsqueda?

•¡ORDENANDO LA LISTA!

•Veremos algoritmos de ordenamiento de O(M logM), adecuado dado el tamaño de N.

• Con una lista ordenada se puede terminar la búsqueda al llegar al primer número más grande al que buscamos.

• Esto reduce el costo a cerca de M/2 para una búsqueda no exitosa, lo mismo que era para la búsqueda exitosa.

• Propiedad 2: La búsqueda secuencial en un arreglo ordenado examina M números en el peor caso y cerca de M/2 números para cada búsqueda en promedio.

18

Tuesday, February 14, 17

Page 68: Notación Asintótica 2alram/comp_algo/clase5.pdf · Alonso Ramirez Manzanares Computación y Algoritmos 14.02 Notación Asintótica 2 mat-151 1 Tuesday, February 14, 17

Alonso Ramirez Manzanares Computación y Algoritmos 14.02

Búsqueda secuencial

19

Tuesday, February 14, 17

Page 69: Notación Asintótica 2alram/comp_algo/clase5.pdf · Alonso Ramirez Manzanares Computación y Algoritmos 14.02 Notación Asintótica 2 mat-151 1 Tuesday, February 14, 17

Alonso Ramirez Manzanares Computación y Algoritmos 14.02

Búsqueda secuencial

• El tiempo de ejecución de la búsqueda secuencial es proporcional a MN para M transacciones, en promedio y en el peor caso.

19

Tuesday, February 14, 17

Page 70: Notación Asintótica 2alram/comp_algo/clase5.pdf · Alonso Ramirez Manzanares Computación y Algoritmos 14.02 Notación Asintótica 2 mat-151 1 Tuesday, February 14, 17

Alonso Ramirez Manzanares Computación y Algoritmos 14.02

Búsqueda secuencial

• El tiempo de ejecución de la búsqueda secuencial es proporcional a MN para M transacciones, en promedio y en el peor caso.

• Esto nos dice que este algoritmo no es utilizable para tablas muy grandes:

19

Tuesday, February 14, 17

Page 71: Notación Asintótica 2alram/comp_algo/clase5.pdf · Alonso Ramirez Manzanares Computación y Algoritmos 14.02 Notación Asintótica 2 mat-151 1 Tuesday, February 14, 17

Alonso Ramirez Manzanares Computación y Algoritmos 14.02

Búsqueda secuencial

• El tiempo de ejecución de la búsqueda secuencial es proporcional a MN para M transacciones, en promedio y en el peor caso.

• Esto nos dice que este algoritmo no es utilizable para tablas muy grandes:

• Si toma c microsegundos examinar un número y M=109 y N=106 , el tiempo de ejecución para todas las transacciones será de al menos (c/2)109 segundos, o alrededor de 16c años.

19

Tuesday, February 14, 17

Page 72: Notación Asintótica 2alram/comp_algo/clase5.pdf · Alonso Ramirez Manzanares Computación y Algoritmos 14.02 Notación Asintótica 2 mat-151 1 Tuesday, February 14, 17

Alonso Ramirez Manzanares Computación y Algoritmos 14.02

Búsqueda binaria

• int search ( int a[], int v, int l, int r )• {

•while (r >= l){•int m = (l+r)/2;•if (v == a[m]) return m;•if (v < a[m]) r=m-1; else l=m+1;

•}•return -1;

• }

20

Tuesday, February 14, 17

Page 73: Notación Asintótica 2alram/comp_algo/clase5.pdf · Alonso Ramirez Manzanares Computación y Algoritmos 14.02 Notación Asintótica 2 mat-151 1 Tuesday, February 14, 17

Alonso Ramirez Manzanares Computación y Algoritmos 14.02

Búsqueda binaria

21

Tuesday, February 14, 17

Page 74: Notación Asintótica 2alram/comp_algo/clase5.pdf · Alonso Ramirez Manzanares Computación y Algoritmos 14.02 Notación Asintótica 2 mat-151 1 Tuesday, February 14, 17

Alonso Ramirez Manzanares Computación y Algoritmos 14.02

Búsqueda binaria• Si los números están ordenados, se puede eliminar la mitad de ellos comparando el que buscamos con el de la posición media de la tabla.

21

Tuesday, February 14, 17

Page 75: Notación Asintótica 2alram/comp_algo/clase5.pdf · Alonso Ramirez Manzanares Computación y Algoritmos 14.02 Notación Asintótica 2 mat-151 1 Tuesday, February 14, 17

Alonso Ramirez Manzanares Computación y Algoritmos 14.02

Búsqueda binaria• Si los números están ordenados, se puede eliminar la mitad de ellos comparando el que buscamos con el de la posición media de la tabla.

• Si es igual, la búsqueda es exitosa.

21

Tuesday, February 14, 17

Page 76: Notación Asintótica 2alram/comp_algo/clase5.pdf · Alonso Ramirez Manzanares Computación y Algoritmos 14.02 Notación Asintótica 2 mat-151 1 Tuesday, February 14, 17

Alonso Ramirez Manzanares Computación y Algoritmos 14.02

Búsqueda binaria• Si los números están ordenados, se puede eliminar la mitad de ellos comparando el que buscamos con el de la posición media de la tabla.

• Si es igual, la búsqueda es exitosa.

• Si es menor, aplicamos el mismo método a la mitad izquierda de la tabla.

21

Tuesday, February 14, 17

Page 77: Notación Asintótica 2alram/comp_algo/clase5.pdf · Alonso Ramirez Manzanares Computación y Algoritmos 14.02 Notación Asintótica 2 mat-151 1 Tuesday, February 14, 17

Alonso Ramirez Manzanares Computación y Algoritmos 14.02

Búsqueda binaria• Si los números están ordenados, se puede eliminar la mitad de ellos comparando el que buscamos con el de la posición media de la tabla.

• Si es igual, la búsqueda es exitosa.

• Si es menor, aplicamos el mismo método a la mitad izquierda de la tabla.

• Si es mayor, aplicamos el mismo método a la mitad derecha de la tabla.

21

Tuesday, February 14, 17

Page 78: Notación Asintótica 2alram/comp_algo/clase5.pdf · Alonso Ramirez Manzanares Computación y Algoritmos 14.02 Notación Asintótica 2 mat-151 1 Tuesday, February 14, 17

Alonso Ramirez Manzanares Computación y Algoritmos 14.02

Búsqueda binaria• Si los números están ordenados, se puede eliminar la mitad de ellos comparando el que buscamos con el de la posición media de la tabla.

• Si es igual, la búsqueda es exitosa.

• Si es menor, aplicamos el mismo método a la mitad izquierda de la tabla.

• Si es mayor, aplicamos el mismo método a la mitad derecha de la tabla.

21

Tuesday, February 14, 17

Page 79: Notación Asintótica 2alram/comp_algo/clase5.pdf · Alonso Ramirez Manzanares Computación y Algoritmos 14.02 Notación Asintótica 2 mat-151 1 Tuesday, February 14, 17

Alonso Ramirez Manzanares Computación y Algoritmos 14.02

Búsqueda binaria• Si los números están ordenados, se puede eliminar la mitad de ellos comparando el que buscamos con el de la posición media de la tabla.

• Si es igual, la búsqueda es exitosa.

• Si es menor, aplicamos el mismo método a la mitad izquierda de la tabla.

• Si es mayor, aplicamos el mismo método a la mitad derecha de la tabla.

• Propiedad 1: La búsqueda binaria nunca examina más de (lg2N)+1 números.

21

Tuesday, February 14, 17

Page 80: Notación Asintótica 2alram/comp_algo/clase5.pdf · Alonso Ramirez Manzanares Computación y Algoritmos 14.02 Notación Asintótica 2 mat-151 1 Tuesday, February 14, 17

Alonso Ramirez Manzanares Computación y Algoritmos 14.02

Búsqueda binaria• Si los números están ordenados, se puede eliminar la mitad de ellos comparando el que buscamos con el de la posición media de la tabla.

• Si es igual, la búsqueda es exitosa.

• Si es menor, aplicamos el mismo método a la mitad izquierda de la tabla.

• Si es mayor, aplicamos el mismo método a la mitad derecha de la tabla.

• Propiedad 1: La búsqueda binaria nunca examina más de (lg2N)+1 números.

• Lo que significa: Permite resolver problemas muy grandes, de hasta 1 millón de números con máximo 20 comparaciones por transacción, que puede ser menos de lo que tarda una computadora en imprimir o leer el número. En este caso, con c=1, aprox. log2(M)*N/1e-6 < 30 seg.

21

Tuesday, February 14, 17

Page 81: Notación Asintótica 2alram/comp_algo/clase5.pdf · Alonso Ramirez Manzanares Computación y Algoritmos 14.02 Notación Asintótica 2 mat-151 1 Tuesday, February 14, 17

Alonso Ramirez Manzanares Computación y Algoritmos 14.02

Problemas de búsqueda

• Un análisis del comportamiento asintótico de estos algoritmos nos permite elegir el mejor entre ellos para nuestra aplicación.

• El análisis del peor caso nos proporciona garantías sobre el funcionamiento del programa.

• El análisis del caso promedio nos da predicciones sobre el funcionamiento promedio, con los datos apropiados, del programa.

22

Tuesday, February 14, 17