Descargar la presentación
La descarga está en progreso. Por favor, espere
1
Algoritmos de Búsqueda
TEMA XIII: Algoritmos de Búsqueda y Ordenación Programación I
2
Indice Búsqueda Automática de Información Búsqueda en un Vector
4 Indice Búsqueda Automática de Información Búsqueda en un Vector Recorrido con Tratamiento Selectivo Vector Ordenado Concepto de Campo Clave Búsqueda Secuencial Búsqueda Secuencial con Centinela Búsqueda Binaria o Dicotómica Medida de la Complejidad de un Algoritmo Valores del mejor, peor y caso medio Comparación de las Estrategias de Búsqueda
3
Búsqueda Automática de Información
5 Búsqueda Automática de Información 1. Búsqueda automática de información 2. Búsqueda en un vector 2.1. Recorrido con Tratamiento Selectivo Importancia en diferentes aplicaciones Objetivo: Localización de un elemento clave dentro de una colección de datos Búsqueda lineal Búsqueda Interna: Vectores, Listas Búsqueda Externa: Ficheros 2.2. Vector Ordenado 2.3. Concepto de Campo Clave 3. Búsqueda Secuencial 4. Búsqueda Secuencial con Centinela 5. Búsqueda Binaria o Dicotómica 6. Medida de la Complejidad de un Algoritmo 6.1. Valores del mejor, peor y caso medio 6.2. Comparación de las estrategias de búsqueda
4
Búsqueda en un Vector Tipos de Búsqueda Eficiencia vs generalidad
6 Búsqueda en un Vector 1. Búsqueda automática de información 2. Búsqueda en un vector 2.1. Recorrido con Tratamiento Selectivo Tipos de Búsqueda Búsqueda Secuencial Búsqueda Binaria Eficiencia vs generalidad Simplificación Tipo índice numérico incrementos del índice - función succ Tipo base simple comparaciones - función que realice la comparación 2.2. Vector Ordenado 2.3. Concepto de Campo Clave 3. Búsqueda Secuencial 4. Búsqueda Secuencial con Centinela 5. Búsqueda Binaria o Dicotómica 6. Medida de la Complejidad de un Algoritmo 6.1. Valores del mejor, peor y caso medio 6.2. Comparación de las estrategias de búsqueda
5
Recorrido de un Vector con Tratamiento Selectivo
7 Recorrido de un Vector con Tratamiento Selectivo 1. Búsqueda automática de información 2. Búsqueda en un vector 2.1. Recorrido con Tratamiento Selectivo Recorrido completo del vector Localiza buscado n veces Código ejemplo: VAR buscado: <tipo>; V: ARRAY [1..n] OF <tipo>; i: 1..n; BEGIN FOR i:=1 TO n DO IF V[i] = buscado THEN (* procesar (v[i]) *) 2.2. Vector Ordenado 2.3. Concepto de Campo Clave 3. Búsqueda Secuencial 4. Búsqueda Secuencial con Centinela 5. Búsqueda Binaria o Dicotómica 6. Medida de la Complejidad de un Algoritmo 6.1. Valores del mejor, peor y caso medio 6.2. Comparación de las estrategias de búsqueda
6
Vector Ordenado Vector ordenado por clave Estrategias de Búsqueda
8 Vector Ordenado 1. Búsqueda automática de información 2. Búsqueda en un vector 2.1. Recorrido con Tratamiento Selectivo Vector ordenado por clave Si buscado en el vector no es necesario recorrido completo Aumenta la eficiencia de búsqueda Estrategias de Búsqueda Búsqueda Secuencial Finaliza si componente >= buscado Búsqueda Binaria o Dicotómica 2.2. Vector Ordenado 2.3. Concepto de Campo Clave 3. Búsqueda Secuencial 4. Búsqueda Secuencial con Centinela 5. Búsqueda Binaria o Dicotómica 6. Medida de la Complejidad de un Algoritmo 6.1. Valores del mejor, peor y caso medio 6.2. Comparación de las estrategias de búsqueda
7
Concepto de Campo Clave
9 Concepto de Campo Clave 1. Búsqueda automática de información 2. Búsqueda en un vector 2.1. Recorrido con Tratamiento Selectivo Clave: Valor que caracteriza al elemento que se busca Valor de un campo (clave simple) Un elemento del vector Un campo de un elemento del vector Combinación de varios (clave compleja) Comparaciones con respecto a la clave Clave compleja No comparación directa Función de comparación 2.2. Vector Ordenado 2.3. Concepto de Campo Clave 3. Búsqueda Secuencial 4. Búsqueda Secuencial con Centinela 5. Búsqueda Binaria o Dicotómica 6. Medida de la Complejidad de un Algoritmo 6.1. Valores del mejor, peor y caso medio 6.2. Comparación de las estrategias de búsqueda
8
Búsqueda Secuencial Aplicable si: No siempre recorrido completo
10 Búsqueda Secuencial 1. Búsqueda automática de información 2. Búsqueda en un vector 2.1. Recorrido con Tratamiento Selectivo Aplicable si: buscado solo una vez en el vector Sólo interesa la primera aparición No siempre recorrido completo No imprescindible vector ordenado La búsqueda finaliza si: Aparece buscado Se acaba el vector (buscado no está) 2.2. Vector Ordenado 2.3. Concepto de Campo Clave 3. Búsqueda Secuencial 4. Búsqueda Secuencial con Centinela 5. Búsqueda Binaria o Dicotómica 6. Medida de la Complejidad de un Algoritmo 6.1. Valores del mejor, peor y caso medio 6.2. Comparación de las estrategias de búsqueda
9
Búsqueda Secuencial encontrado := (buscado = V[i]);
11 1. Búsqueda automática de información CONST n = …; VAR buscado: <tipo>; V: ARRAY [1..n] OF <tipo>; i: 1..(n+1); pos: 1..n; encontrado: BOOLEAN; i := 1; encontrado := (buscado = V[i]); WHILE (i <= n) AND (NOT encontrado) DO BEGIN i := i + 1; END; IF encontrado THEN pos := i; 2. Búsqueda en un vector 2.1. Recorrido con Tratamiento Selectivo 2.2. Vector Ordenado 2.3. Concepto de Campo Clave 3. Búsqueda Secuencial 4. Búsqueda Secuencial con Centinela 5. Búsqueda Binaria o Dicotómica 6. Medida de la Complejidad de un Algoritmo 6.1. Valores del mejor, peor y caso medio 6.2. Comparación de las estrategias de búsqueda
10
Ejemplo valor encontrado
12 i := 1; encontrado := (buscado = V[i]); WHILE (i <= n) AND (NOT encontrado) DO BEGIN i := i + 1; END; IF encontrado THEN pos := i; 1. Búsqueda automática de información 2. Búsqueda en un vector 2.1. Recorrido con Tratamiento Selectivo 2.2. Vector Ordenado 2.3. Concepto de Campo Clave 3. Búsqueda Secuencial 4. Búsqueda Secuencial con Centinela V[1] V[2] V[3] V[4] V[5] V[6] V[7] n bus i enc pos 10 3 4 11 7 1 2 5. Búsqueda Binaria o Dicotómica 6. Medida de la Complejidad de un Algoritmo 6.1. Valores del mejor, peor y caso medio 6.2. Comparación de las estrategias de búsqueda
11
Ejemplo valor encontrado
13 i := 1; encontrado := (buscado = V[i]); WHILE (i <= n) AND (NOT encontrado) DO BEGIN i := i + 1; END; IF encontrado THEN pos := i; 1. Búsqueda automática de información 2. Búsqueda en un vector 2.1. Recorrido con Tratamiento Selectivo 2.2. Vector Ordenado 2.3. Concepto de Campo Clave 3. Búsqueda Secuencial 4. Búsqueda Secuencial con Centinela V[1] V[2] V[3] V[4] V[5] V[6] V[7] n bus i enc pos 10 3 4 11 7 1 2 5. Búsqueda Binaria o Dicotómica 6. Medida de la Complejidad de un Algoritmo 6.1. Valores del mejor, peor y caso medio 6.2. Comparación de las estrategias de búsqueda
12
Ejemplo valor encontrado
14 i := 1; encontrado := (buscado = V[i]); WHILE (i <= n) AND (NOT encontrado) DO BEGIN i := i + 1; END; IF encontrado THEN pos := i; 1. Búsqueda automática de información 2. Búsqueda en un vector 2.1. Recorrido con Tratamiento Selectivo 2.2. Vector Ordenado 2.3. Concepto de Campo Clave 3. Búsqueda Secuencial 4. Búsqueda Secuencial con Centinela V[1] V[2] V[3] V[4] V[5] V[6] V[7] n bus i enc pos 10 3 4 11 7 1 2 F 5. Búsqueda Binaria o Dicotómica 6. Medida de la Complejidad de un Algoritmo 6.1. Valores del mejor, peor y caso medio 6.2. Comparación de las estrategias de búsqueda
13
Ejemplo valor encontrado
15 i := 1; encontrado := (buscado = V[i]); WHILE (i <= n) AND (NOT encontrado) DO BEGIN i := i + 1; END; IF encontrado THEN pos := i; 1. Búsqueda automática de información 2. Búsqueda en un vector 2.1. Recorrido con Tratamiento Selectivo 2.2. Vector Ordenado 2.3. Concepto de Campo Clave 3. Búsqueda Secuencial 4. Búsqueda Secuencial con Centinela V[1] V[2] V[3] V[4] V[5] V[6] V[7] n bus i enc pos 10 3 4 11 7 1 2 F 5. Búsqueda Binaria o Dicotómica 6. Medida de la Complejidad de un Algoritmo 6.1. Valores del mejor, peor y caso medio 6.2. Comparación de las estrategias de búsqueda
14
Ejemplo valor encontrado
16 i := 1; encontrado := (buscado = V[i]); WHILE (i <= n) AND (NOT encontrado) DO BEGIN i := i + 1; END; IF encontrado THEN pos := i; 1. Búsqueda automática de información 2. Búsqueda en un vector 2.1. Recorrido con Tratamiento Selectivo 2.2. Vector Ordenado 2.3. Concepto de Campo Clave 3. Búsqueda Secuencial 4. Búsqueda Secuencial con Centinela V[1] V[2] V[3] V[4] V[5] V[6] V[7] n bus i enc pos 10 3 4 11 7 1 2 F T 5. Búsqueda Binaria o Dicotómica 6. Medida de la Complejidad de un Algoritmo 6.1. Valores del mejor, peor y caso medio 6.2. Comparación de las estrategias de búsqueda
15
Ejemplo valor encontrado
17 i := 1; encontrado := (buscado = V[i]); WHILE (i <= n) AND (NOT encontrado) DO BEGIN i := i + 1; END; IF encontrado THEN pos := i; 1. Búsqueda automática de información 2. Búsqueda en un vector 2.1. Recorrido con Tratamiento Selectivo 2.2. Vector Ordenado 2.3. Concepto de Campo Clave 3. Búsqueda Secuencial 4. Búsqueda Secuencial con Centinela V[1] V[2] V[3] V[4] V[5] V[6] V[7] n bus i enc pos 10 3 4 11 7 1 2 F T 5. Búsqueda Binaria o Dicotómica 6. Medida de la Complejidad de un Algoritmo 6.1. Valores del mejor, peor y caso medio 6.2. Comparación de las estrategias de búsqueda
16
Ejemplo valor no encontrado
18 i := 1; encontrado := (buscado = V[i]); WHILE (i <= n) AND (NOT encontrado) DO BEGIN i := i + 1; END; IF encontrado THEN pos := i; 1. Búsqueda automática de información 2. Búsqueda en un vector 2.1. Recorrido con Tratamiento Selectivo 2.2. Vector Ordenado 2.3. Concepto de Campo Clave V[1] V[2] V[3] V[4] V[5] V[6] V[7] n bus i enc pos 10 3 4 11 7 1 2 5 3. Búsqueda Secuencial 4. Búsqueda Secuencial con Centinela 5. Búsqueda Binaria o Dicotómica 6. Medida de la Complejidad de un Algoritmo 6.1. Valores del mejor, peor y caso medio 6.2. Comparación de las estrategias de búsqueda
17
Ejemplo valor no encontrado
19 i := 1; encontrado := (buscado = V[i]); WHILE (i <= n) AND (NOT encontrado) DO BEGIN i := i + 1; END; IF encontrado THEN pos := i; 1. Búsqueda automática de información 2. Búsqueda en un vector 2.1. Recorrido con Tratamiento Selectivo 2.2. Vector Ordenado 2.3. Concepto de Campo Clave V[1] V[2] V[3] V[4] V[5] V[6] V[7] n bus i enc pos 10 3 4 11 7 1 2 5 3. Búsqueda Secuencial 4. Búsqueda Secuencial con Centinela 5. Búsqueda Binaria o Dicotómica 6. Medida de la Complejidad de un Algoritmo 6.1. Valores del mejor, peor y caso medio 6.2. Comparación de las estrategias de búsqueda
18
Ejemplo valor no encontrado
20 i := 1; encontrado := (buscado = V[i]); WHILE (i <= n) AND (NOT encontrado) DO BEGIN i := i + 1; END; IF encontrado THEN pos := i; 1. Búsqueda automática de información 2. Búsqueda en un vector 2.1. Recorrido con Tratamiento Selectivo 2.2. Vector Ordenado 2.3. Concepto de Campo Clave V[1] V[2] V[3] V[4] V[5] V[6] V[7] n bus i enc pos 10 3 4 11 7 1 2 5 F 3. Búsqueda Secuencial 4. Búsqueda Secuencial con Centinela 5. Búsqueda Binaria o Dicotómica 6. Medida de la Complejidad de un Algoritmo 6.1. Valores del mejor, peor y caso medio 6.2. Comparación de las estrategias de búsqueda
19
Ejemplo valor no encontrado
21 i := 1; encontrado := (buscado = V[i]); WHILE (i <= n) AND (NOT encontrado) DO BEGIN i := i + 1; END; IF encontrado THEN pos := i; 1. Búsqueda automática de información 2. Búsqueda en un vector 2.1. Recorrido con Tratamiento Selectivo 2.2. Vector Ordenado 2.3. Concepto de Campo Clave V[1] V[2] V[3] V[4] V[5] V[6] V[7] n bus i enc pos 10 3 4 11 7 1 2 5 F 3. Búsqueda Secuencial 4. Búsqueda Secuencial con Centinela 5. Búsqueda Binaria o Dicotómica 6. Medida de la Complejidad de un Algoritmo 6.1. Valores del mejor, peor y caso medio 6.2. Comparación de las estrategias de búsqueda
20
Ejemplo valor no encontrado
22 i := 1; encontrado := (buscado = V[i]); WHILE (i <= n) AND (NOT encontrado) DO BEGIN i := i + 1; END; IF encontrado THEN pos := i; 1. Búsqueda automática de información 2. Búsqueda en un vector 2.1. Recorrido con Tratamiento Selectivo 2.2. Vector Ordenado 2.3. Concepto de Campo Clave V[1] V[2] V[3] V[4] V[5] V[6] V[7] n bus i enc pos 10 3 4 11 7 1 2 5 F 3. Búsqueda Secuencial 4. Búsqueda Secuencial con Centinela 5. Búsqueda Binaria o Dicotómica 6. Medida de la Complejidad de un Algoritmo 6.1. Valores del mejor, peor y caso medio 6.2. Comparación de las estrategias de búsqueda
21
Ejemplo valor no encontrado
23 i := 1; encontrado := (buscado = V[i]); WHILE (i <= n) AND (NOT encontrado) DO BEGIN i := i + 1; END; IF encontrado THEN pos := i; 1. Búsqueda automática de información 2. Búsqueda en un vector 2.1. Recorrido con Tratamiento Selectivo 2.2. Vector Ordenado 2.3. Concepto de Campo Clave V[1] V[2] V[3] V[4] V[5] V[6] V[7] n bus i enc pos 10 3 4 11 7 1 2 5 F 3. Búsqueda Secuencial 4. Búsqueda Secuencial con Centinela 5. Búsqueda Binaria o Dicotómica 6. Medida de la Complejidad de un Algoritmo 6.1. Valores del mejor, peor y caso medio 6.2. Comparación de las estrategias de búsqueda
22
Ejemplo valor no encontrado
24 i := 1; encontrado := (buscado = V[i]); WHILE (i <= n) AND (NOT encontrado) DO BEGIN i := i + 1; END; IF encontrado THEN pos := i; 1. Búsqueda automática de información 2. Búsqueda en un vector 2.1. Recorrido con Tratamiento Selectivo 2.2. Vector Ordenado 2.3. Concepto de Campo Clave V[1] V[2] V[3] V[4] V[5] V[6] V[7] n bus i enc pos 10 3 4 11 7 1 2 5 F 3. Búsqueda Secuencial 4. Búsqueda Secuencial con Centinela 5. Búsqueda Binaria o Dicotómica 6. Medida de la Complejidad de un Algoritmo 6.1. Valores del mejor, peor y caso medio 6.2. Comparación de las estrategias de búsqueda
23
Ejemplo valor no encontrado
25 i := 1; encontrado := (buscado = V[i]); WHILE (i <= n) AND (NOT encontrado) DO BEGIN i := i + 1; END; IF encontrado THEN pos := i; 1. Búsqueda automática de información 2. Búsqueda en un vector 2.1. Recorrido con Tratamiento Selectivo 2.2. Vector Ordenado 2.3. Concepto de Campo Clave V[1] V[2] V[3] V[4] V[5] V[6] V[7] n bus i enc pos 10 3 4 11 7 1 2 5 F 6 3. Búsqueda Secuencial 4. Búsqueda Secuencial con Centinela 5. Búsqueda Binaria o Dicotómica 6. Medida de la Complejidad de un Algoritmo 6.1. Valores del mejor, peor y caso medio 6.2. Comparación de las estrategias de búsqueda
24
Ejemplo valor no encontrado
26 i := 1; encontrado := (buscado = V[i]); WHILE (i <= n) AND (NOT encontrado) DO BEGIN i := i + 1; END; IF encontrado THEN pos := i; 1. Búsqueda automática de información 2. Búsqueda en un vector 2.1. Recorrido con Tratamiento Selectivo 2.2. Vector Ordenado 2.3. Concepto de Campo Clave V[1] V[2] V[3] V[4] V[5] V[6] V[7] n bus i enc pos 10 3 4 11 7 1 2 5 F 6 3. Búsqueda Secuencial 4. Búsqueda Secuencial con Centinela 5. Búsqueda Binaria o Dicotómica 6. Medida de la Complejidad de un Algoritmo 6.1. Valores del mejor, peor y caso medio 6.2. Comparación de las estrategias de búsqueda
25
Ejemplo valor no encontrado
27 i := 1; encontrado := (buscado = V[i]); WHILE (i <= n) AND (NOT encontrado) DO BEGIN i := i + 1; END; IF encontrado THEN pos := i; 1. Búsqueda automática de información 2. Búsqueda en un vector 2.1. Recorrido con Tratamiento Selectivo 2.2. Vector Ordenado 2.3. Concepto de Campo Clave V[1] V[2] V[3] V[4] V[5] V[6] V[7] n bus i enc pos 10 3 4 11 7 1 2 5 F 6 8 3. Búsqueda Secuencial 4. Búsqueda Secuencial con Centinela 5. Búsqueda Binaria o Dicotómica 6. Medida de la Complejidad de un Algoritmo 6.1. Valores del mejor, peor y caso medio 6.2. Comparación de las estrategias de búsqueda
26
Ejemplo valor no encontrado
28 i := 1; encontrado := (buscado = V[i]); WHILE (i <= n) AND (NOT encontrado) DO BEGIN i := i + 1; END; IF encontrado THEN pos := i; 1. Búsqueda automática de información 2. Búsqueda en un vector 2.1. Recorrido con Tratamiento Selectivo 2.2. Vector Ordenado 2.3. Concepto de Campo Clave V[1] V[2] V[3] V[4] V[5] V[6] V[7] n bus i enc pos 10 3 4 11 7 1 2 5 F 6 8 3. Búsqueda Secuencial 4. Búsqueda Secuencial con Centinela 5. Búsqueda Binaria o Dicotómica 6. Medida de la Complejidad de un Algoritmo 6.1. Valores del mejor, peor y caso medio 6.2. Comparación de las estrategias de búsqueda
27
Vector Ordenado pos := 1; CONST hallado := FALSE;
29 1. Búsqueda automática de información CONST n = ...; VAR buscado: <tipo>; V: ARRAY [1..n] OF <tipo>; pos: 1..(n+1); encontrado, hallado: BOOLEAN; pos := 1; hallado := FALSE; WHILE (pos <= n) AND NOT hallado DO IF buscado <= V[pos] THEN hallado := TRUE ELSE pos := pos +1; IF (pos <= n) THEN encontrado := (buscado = V[pos]) encontrado := FALSE; 2. Búsqueda en un vector 2.1. Recorrido con Tratamiento Selectivo 2.2. Vector Ordenado 2.3. Concepto de Campo Clave 3. Búsqueda Secuencial 4. Búsqueda Secuencial con Centinela 5. Búsqueda Binaria o Dicotómica 6. Medida de la Complejidad de un Algoritmo 6.1. Valores del mejor, peor y caso medio 6.2. Comparación de las estrategias de búsqueda
28
Ejemplo valor encontrado
30 pos := 1; hallado := FALSE; WHILE (pos <= n) AND NOT hallado DO IF buscado <= V[pos] THEN hallado := TRUE ELSE pos := pos +1; IF (pos <= n) THEN encontrado := (buscado = V[pos]) ELSE encontrado := FALSE; 1. Búsqueda automática de información 2. Búsqueda en un vector 2.1. Recorrido con Tratamiento Selectivo 2.2. Vector Ordenado 2.3. Concepto de Campo Clave 3. Búsqueda Secuencial 4. Búsqueda Secuencial con Centinela V[1] V[2] V[3] V[4] V[5] V[6] V[7] n bus pos hal enc 1 2 3 4 7 10 11 5. Búsqueda Binaria o Dicotómica 6. Medida de la Complejidad de un Algoritmo 6.1. Valores del mejor, peor y caso medio 6.2. Comparación de las estrategias de búsqueda
29
Ejemplo valor encontrado
31 pos := 1; hallado := FALSE; WHILE (pos <= n) AND NOT hallado DO IF buscado <= V[pos] THEN hallado := TRUE ELSE pos := pos +1; IF (pos <= n) THEN encontrado := (buscado = V[pos]) ELSE encontrado := FALSE; 1. Búsqueda automática de información 2. Búsqueda en un vector 2.1. Recorrido con Tratamiento Selectivo 2.2. Vector Ordenado 2.3. Concepto de Campo Clave 3. Búsqueda Secuencial 4. Búsqueda Secuencial con Centinela V[1] V[2] V[3] V[4] V[5] V[6] V[7] n bus pos hal enc 1 2 3 4 7 10 11 5. Búsqueda Binaria o Dicotómica 6. Medida de la Complejidad de un Algoritmo 6.1. Valores del mejor, peor y caso medio 6.2. Comparación de las estrategias de búsqueda
30
Ejemplo valor encontrado
32 pos := 1; hallado := FALSE; WHILE (pos <= n) AND NOT hallado DO IF buscado <= V[pos] THEN hallado := TRUE ELSE pos := pos +1; IF (pos <= n) THEN encontrado := (buscado = V[pos]) ELSE encontrado := FALSE; 1. Búsqueda automática de información 2. Búsqueda en un vector 2.1. Recorrido con Tratamiento Selectivo 2.2. Vector Ordenado 2.3. Concepto de Campo Clave 3. Búsqueda Secuencial 4. Búsqueda Secuencial con Centinela V[1] V[2] V[3] V[4] V[5] V[6] V[7] n bus pos hal enc 1 2 3 4 7 10 11 F 5. Búsqueda Binaria o Dicotómica 6. Medida de la Complejidad de un Algoritmo 6.1. Valores del mejor, peor y caso medio 6.2. Comparación de las estrategias de búsqueda
31
Ejemplo valor encontrado
33 pos := 1; hallado := FALSE; WHILE (pos <= n) AND NOT hallado DO IF buscado <= V[pos] THEN hallado := TRUE ELSE pos := pos +1; IF (pos <= n) THEN encontrado := (buscado = V[pos]) ELSE encontrado := FALSE; 1. Búsqueda automática de información 2. Búsqueda en un vector 2.1. Recorrido con Tratamiento Selectivo 2.2. Vector Ordenado 2.3. Concepto de Campo Clave 3. Búsqueda Secuencial 4. Búsqueda Secuencial con Centinela V[1] V[2] V[3] V[4] V[5] V[6] V[7] n bus pos hal enc 1 2 3 4 7 10 11 F 5. Búsqueda Binaria o Dicotómica 6. Medida de la Complejidad de un Algoritmo 6.1. Valores del mejor, peor y caso medio 6.2. Comparación de las estrategias de búsqueda
32
Ejemplo valor encontrado
34 pos := 1; hallado := FALSE; WHILE (pos <= n) AND NOT hallado DO IF buscado <= V[pos] THEN hallado := TRUE ELSE pos := pos +1; IF (pos <= n) THEN encontrado := (buscado = V[pos]) ELSE encontrado := FALSE; 1. Búsqueda automática de información 2. Búsqueda en un vector 2.1. Recorrido con Tratamiento Selectivo 2.2. Vector Ordenado 2.3. Concepto de Campo Clave 3. Búsqueda Secuencial 4. Búsqueda Secuencial con Centinela V[1] V[2] V[3] V[4] V[5] V[6] V[7] n bus pos hal enc 1 2 3 4 7 10 11 F 5. Búsqueda Binaria o Dicotómica 6. Medida de la Complejidad de un Algoritmo 6.1. Valores del mejor, peor y caso medio 6.2. Comparación de las estrategias de búsqueda
33
Ejemplo valor encontrado
35 pos := 1; hallado := FALSE; WHILE (pos <= n) AND NOT hallado DO IF buscado <= V[pos] THEN hallado := TRUE ELSE pos := pos +1; IF (pos <= n) THEN encontrado := (buscado = V[pos]) ELSE encontrado := FALSE; 1. Búsqueda automática de información 2. Búsqueda en un vector 2.1. Recorrido con Tratamiento Selectivo 2.2. Vector Ordenado 2.3. Concepto de Campo Clave 3. Búsqueda Secuencial 4. Búsqueda Secuencial con Centinela V[1] V[2] V[3] V[4] V[5] V[6] V[7] n bus pos hal enc 1 2 3 4 7 10 11 F 5. Búsqueda Binaria o Dicotómica 6. Medida de la Complejidad de un Algoritmo 6.1. Valores del mejor, peor y caso medio 6.2. Comparación de las estrategias de búsqueda
34
Ejemplo valor encontrado
36 pos := 1; hallado := FALSE; WHILE (pos <= n) AND NOT hallado DO IF buscado <= V[pos] THEN hallado := TRUE ELSE pos := pos +1; IF (pos <= n) THEN encontrado := (buscado = V[pos]) ELSE encontrado := FALSE; 1. Búsqueda automática de información 2. Búsqueda en un vector 2.1. Recorrido con Tratamiento Selectivo 2.2. Vector Ordenado 2.3. Concepto de Campo Clave 3. Búsqueda Secuencial 4. Búsqueda Secuencial con Centinela V[1] V[2] V[3] V[4] V[5] V[6] V[7] n bus pos hal enc 1 2 3 4 7 10 11 F T 5. Búsqueda Binaria o Dicotómica 6. Medida de la Complejidad de un Algoritmo 6.1. Valores del mejor, peor y caso medio 6.2. Comparación de las estrategias de búsqueda
35
Ejemplo valor encontrado
37 pos := 1; hallado := FALSE; WHILE (pos <= n) AND NOT hallado DO IF buscado <= V[pos] THEN hallado := TRUE ELSE pos := pos +1; IF (pos <= n) THEN encontrado := (buscado = V[pos]) ELSE encontrado := FALSE; 1. Búsqueda automática de información 2. Búsqueda en un vector 2.1. Recorrido con Tratamiento Selectivo 2.2. Vector Ordenado 2.3. Concepto de Campo Clave 3. Búsqueda Secuencial 4. Búsqueda Secuencial con Centinela V[1] V[2] V[3] V[4] V[5] V[6] V[7] n bus pos hal enc 1 2 3 4 7 10 11 F T 5. Búsqueda Binaria o Dicotómica 6. Medida de la Complejidad de un Algoritmo 6.1. Valores del mejor, peor y caso medio 6.2. Comparación de las estrategias de búsqueda
36
Ejemplo valor no encontrado
38 pos := 1; hallado := FALSE; WHILE (pos <= n) AND NOT hallado DO IF buscado <= V[pos] THEN hallado := TRUE ELSE pos := pos +1; IF (pos <= n) THEN encontrado := (buscado = V[pos]) ELSE encontrado := FALSE; 1. Búsqueda automática de información 2. Búsqueda en un vector 2.1. Recorrido con Tratamiento Selectivo 2.2. Vector Ordenado 2.3. Concepto de Campo Clave 3. Búsqueda Secuencial V[1] V[2] V[3] V[4] V[5] V[6] V[7] n bus pos hal enc 1 2 3 4 7 10 11 5 4. Búsqueda Secuencial con Centinela 5. Búsqueda Binaria o Dicotómica 6. Medida de la Complejidad de un Algoritmo 6.1. Valores del mejor, peor y caso medio 6.2. Comparación de las estrategias de búsqueda
37
Ejemplo valor no encontrado
39 pos := 1; hallado := FALSE; WHILE (pos <= n) AND NOT hallado DO IF buscado <= V[pos] THEN hallado := TRUE ELSE pos := pos +1; IF (pos <= n) THEN encontrado := (buscado = V[pos]) ELSE encontrado := FALSE; 1. Búsqueda automática de información 2. Búsqueda en un vector 2.1. Recorrido con Tratamiento Selectivo 2.2. Vector Ordenado 2.3. Concepto de Campo Clave 3. Búsqueda Secuencial V[1] V[2] V[3] V[4] V[5] V[6] V[7] n bus pos hal enc 1 2 3 4 7 10 11 5 4. Búsqueda Secuencial con Centinela 5. Búsqueda Binaria o Dicotómica 6. Medida de la Complejidad de un Algoritmo 6.1. Valores del mejor, peor y caso medio 6.2. Comparación de las estrategias de búsqueda
38
Ejemplo valor no encontrado
40 pos := 1; hallado := FALSE; WHILE (pos <= n) AND NOT hallado DO IF buscado <= V[pos] THEN hallado := TRUE ELSE pos := pos +1; IF (pos <= n) THEN encontrado := (buscado = V[pos]) ELSE encontrado := FALSE; 1. Búsqueda automática de información 2. Búsqueda en un vector 2.1. Recorrido con Tratamiento Selectivo 2.2. Vector Ordenado 2.3. Concepto de Campo Clave 3. Búsqueda Secuencial V[1] V[2] V[3] V[4] V[5] V[6] V[7] n bus pos hal enc 1 2 3 4 7 10 11 5 F 4. Búsqueda Secuencial con Centinela 5. Búsqueda Binaria o Dicotómica 6. Medida de la Complejidad de un Algoritmo 6.1. Valores del mejor, peor y caso medio 6.2. Comparación de las estrategias de búsqueda
39
Ejemplo valor no encontrado
41 pos := 1; hallado := FALSE; WHILE (pos <= n) AND NOT hallado DO IF buscado <= V[pos] THEN hallado := TRUE ELSE pos := pos +1; IF (pos <= n) THEN encontrado := (buscado = V[pos]) ELSE encontrado := FALSE; 1. Búsqueda automática de información 2. Búsqueda en un vector 2.1. Recorrido con Tratamiento Selectivo 2.2. Vector Ordenado 2.3. Concepto de Campo Clave 3. Búsqueda Secuencial V[1] V[2] V[3] V[4] V[5] V[6] V[7] n bus pos hal enc 1 2 3 4 7 10 11 5 F 4. Búsqueda Secuencial con Centinela 5. Búsqueda Binaria o Dicotómica 6. Medida de la Complejidad de un Algoritmo 6.1. Valores del mejor, peor y caso medio 6.2. Comparación de las estrategias de búsqueda
40
Ejemplo valor no encontrado
42 pos := 1; hallado := FALSE; WHILE (pos <= n) AND NOT hallado DO IF buscado <= V[pos] THEN hallado := TRUE ELSE pos := pos +1; IF (pos <= n) THEN encontrado := (buscado = V[pos]) ELSE encontrado := FALSE; 1. Búsqueda automática de información 2. Búsqueda en un vector 2.1. Recorrido con Tratamiento Selectivo 2.2. Vector Ordenado 2.3. Concepto de Campo Clave 3. Búsqueda Secuencial V[1] V[2] V[3] V[4] V[5] V[6] V[7] n bus pos hal enc 1 2 3 4 7 10 11 5 F 4. Búsqueda Secuencial con Centinela 5. Búsqueda Binaria o Dicotómica 6. Medida de la Complejidad de un Algoritmo 6.1. Valores del mejor, peor y caso medio 6.2. Comparación de las estrategias de búsqueda
41
Ejemplo valor no encontrado
43 pos := 1; hallado := FALSE; WHILE (pos <= n) AND NOT hallado DO IF buscado <= V[pos] THEN hallado := TRUE ELSE pos := pos +1; IF (pos <= n) THEN encontrado := (buscado = V[pos]) ELSE encontrado := FALSE; 1. Búsqueda automática de información 2. Búsqueda en un vector 2.1. Recorrido con Tratamiento Selectivo 2.2. Vector Ordenado 2.3. Concepto de Campo Clave 3. Búsqueda Secuencial V[1] V[2] V[3] V[4] V[5] V[6] V[7] n bus pos hal enc 1 2 3 4 7 10 11 5 F 4. Búsqueda Secuencial con Centinela 5. Búsqueda Binaria o Dicotómica 6. Medida de la Complejidad de un Algoritmo 6.1. Valores del mejor, peor y caso medio 6.2. Comparación de las estrategias de búsqueda
42
Ejemplo valor no encontrado
44 pos := 1; hallado := FALSE; WHILE (pos <= n) AND NOT hallado DO IF buscado <= V[pos] THEN hallado := TRUE ELSE pos := pos +1; IF (pos <= n) THEN encontrado := (buscado = V[pos]) ELSE encontrado := FALSE; 1. Búsqueda automática de información 2. Búsqueda en un vector 2.1. Recorrido con Tratamiento Selectivo 2.2. Vector Ordenado 2.3. Concepto de Campo Clave 3. Búsqueda Secuencial V[1] V[2] V[3] V[4] V[5] V[6] V[7] n bus pos hal enc 1 2 3 4 7 10 11 5 F 4. Búsqueda Secuencial con Centinela 5. Búsqueda Binaria o Dicotómica 6. Medida de la Complejidad de un Algoritmo 6.1. Valores del mejor, peor y caso medio 6.2. Comparación de las estrategias de búsqueda
43
Ejemplo valor no encontrado
45 pos := 1; hallado := FALSE; WHILE (pos <= n) AND NOT hallado DO IF buscado <= V[pos] THEN hallado := TRUE ELSE pos := pos +1; IF (pos <= n) THEN encontrado := (buscado = V[pos]) ELSE encontrado := FALSE; 1. Búsqueda automática de información 2. Búsqueda en un vector 2.1. Recorrido con Tratamiento Selectivo 2.2. Vector Ordenado 2.3. Concepto de Campo Clave 3. Búsqueda Secuencial V[1] V[2] V[3] V[4] V[5] V[6] V[7] n bus pos hal enc 1 2 3 4 7 10 11 5 F T 4. Búsqueda Secuencial con Centinela 5. Búsqueda Binaria o Dicotómica 6. Medida de la Complejidad de un Algoritmo 6.1. Valores del mejor, peor y caso medio 6.2. Comparación de las estrategias de búsqueda
44
Ejemplo valor no encontrado
46 pos := 1; hallado := FALSE; WHILE (pos <= n) AND NOT hallado DO IF buscado <= V[pos] THEN hallado := TRUE ELSE pos := pos +1; IF (pos <= n) THEN encontrado := (buscado = V[pos]) ELSE encontrado := FALSE; 1. Búsqueda automática de información 2. Búsqueda en un vector 2.1. Recorrido con Tratamiento Selectivo 2.2. Vector Ordenado 2.3. Concepto de Campo Clave 3. Búsqueda Secuencial V[1] V[2] V[3] V[4] V[5] V[6] V[7] n bus pos hal enc 1 2 3 4 7 10 11 5 F T 4. Búsqueda Secuencial con Centinela 5. Búsqueda Binaria o Dicotómica 6. Medida de la Complejidad de un Algoritmo 6.1. Valores del mejor, peor y caso medio 6.2. Comparación de las estrategias de búsqueda
45
Búsqueda Secuencial con Centinela
47 Búsqueda Secuencial con Centinela 1. Búsqueda automática de información 2. Búsqueda en un vector Dos Comparaciones no Eficiente Si buscado en el vector Una comparación Un elemento más en el vector Centinela 2.1. Recorrido con Tratamiento Selectivo 2.2. Vector Ordenado 2.3. Concepto de Campo Clave 3. Búsqueda Secuencial 4. Búsqueda Secuencial con Centinela 5. Búsqueda Binaria o Dicotómica 6. Medida de la Complejidad de un Algoritmo 6.1. Valores del mejor, peor y caso medio 6.2. Comparación de las estrategias de búsqueda
46
Búsqueda Secuencial con Centinela
48 Búsqueda Secuencial con Centinela 1. Búsqueda automática de información 2. Búsqueda en un vector CONST n = ...; VAR buscado: <tipo>; V: ARRAY [1..(n+1)] OF <tipo>; i: 1..(n+1); pos: 1..n; encontrado: BOOLEAN; i := 1; V[n+1] := buscado; WHILE (V[i] <> buscado) DO i := i +1; encontrado := (i < (n+1)); IF encontrado THEN pos := i; 2.1. Recorrido con Tratamiento Selectivo 2.2. Vector Ordenado 2.3. Concepto de Campo Clave 3. Búsqueda Secuencial 4. Búsqueda Secuencial con Centinela 5. Búsqueda Binaria o Dicotómica 6. Medida de la Complejidad de un Algoritmo 6.1. Valores del mejor, peor y caso medio 6.2. Comparación de las estrategias de búsqueda
47
Ejemplo valor encontrado
49 Ejemplo valor encontrado 1. Búsqueda automática de información i := 1; V[n+1] := buscado; WHILE (V[i] <> buscado) DO i := i +1; encontrado := (i < (n+1)); IF encontrado THEN pos := i; 2. Búsqueda en un vector 2.1. Recorrido con Tratamiento Selectivo 2.2. Vector Ordenado 2.3. Concepto de Campo Clave 3. Búsqueda Secuencial v[1] v[2] v[3] v[4] v[5] v[6] v[7] v[8] n bus i enc pos 10 3 4 11 7 1 2 4. Búsqueda Secuencial con Centinela 5. Búsqueda Binaria o Dicotómica 6. Medida de la Complejidad de un Algoritmo 6.1. Valores del mejor, peor y caso medio 6.2. Comparación de las estrategias de búsqueda
48
Ejemplo valor encontrado
50 Ejemplo valor encontrado 1. Búsqueda automática de información i := 1; V[n+1] := buscado; WHILE (V[i] <> buscado) DO i := i +1; encontrado := (i < (n+1)); IF encontrado THEN pos := i; 2. Búsqueda en un vector 2.1. Recorrido con Tratamiento Selectivo 2.2. Vector Ordenado 2.3. Concepto de Campo Clave 3. Búsqueda Secuencial v[1] v[2] v[3] v[4] v[5] v[6] v[7] v[8] n bus i enc pos 10 3 4 11 7 1 2 4. Búsqueda Secuencial con Centinela 5. Búsqueda Binaria o Dicotómica 6. Medida de la Complejidad de un Algoritmo 6.1. Valores del mejor, peor y caso medio 6.2. Comparación de las estrategias de búsqueda
49
Ejemplo valor encontrado
51 Ejemplo valor encontrado 1. Búsqueda automática de información i := 1; V[n+1] := buscado; WHILE (V[i] <> buscado) DO i := i +1; encontrado := (i < (n+1)); IF encontrado THEN pos := i; 2. Búsqueda en un vector 2.1. Recorrido con Tratamiento Selectivo 2.2. Vector Ordenado 2.3. Concepto de Campo Clave 3. Búsqueda Secuencial v[1] v[2] v[3] v[4] v[5] v[6] v[7] v[8] n bus i enc pos 10 3 4 11 7 1 2 4. Búsqueda Secuencial con Centinela 5. Búsqueda Binaria o Dicotómica 6. Medida de la Complejidad de un Algoritmo 6.1. Valores del mejor, peor y caso medio 6.2. Comparación de las estrategias de búsqueda
50
Ejemplo valor encontrado
52 Ejemplo valor encontrado 1. Búsqueda automática de información i := 1; V[n+1] := buscado; WHILE (V[i] <> buscado) DO i := i +1; encontrado := (i < (n+1)); IF encontrado THEN pos := i; 2. Búsqueda en un vector 2.1. Recorrido con Tratamiento Selectivo 2.2. Vector Ordenado 2.3. Concepto de Campo Clave 3. Búsqueda Secuencial v[1] v[2] v[3] v[4] v[5] v[6] v[7] v[8] n bus i enc pos 10 3 4 11 7 1 2 4. Búsqueda Secuencial con Centinela 5. Búsqueda Binaria o Dicotómica 6. Medida de la Complejidad de un Algoritmo 6.1. Valores del mejor, peor y caso medio 6.2. Comparación de las estrategias de búsqueda
51
Ejemplo valor encontrado
53 Ejemplo valor encontrado 1. Búsqueda automática de información i := 1; V[n+1] := buscado; WHILE (V[i] <> buscado) DO i := i +1; encontrado := (i < (n+1)); IF encontrado THEN pos := i; 2. Búsqueda en un vector 2.1. Recorrido con Tratamiento Selectivo 2.2. Vector Ordenado 2.3. Concepto de Campo Clave 3. Búsqueda Secuencial v[1] v[2] v[3] v[4] v[5] v[6] v[7] v[8] n bus i enc pos 10 3 4 11 7 1 2 4. Búsqueda Secuencial con Centinela 5. Búsqueda Binaria o Dicotómica 6. Medida de la Complejidad de un Algoritmo 6.1. Valores del mejor, peor y caso medio 6.2. Comparación de las estrategias de búsqueda
52
Ejemplo valor encontrado
54 Ejemplo valor encontrado 1. Búsqueda automática de información i := 1; V[n+1] := buscado; WHILE (V[i] <> buscado) DO i := i +1; encontrado := (i < (n+1)); IF encontrado THEN pos := i; 2. Búsqueda en un vector 2.1. Recorrido con Tratamiento Selectivo 2.2. Vector Ordenado 2.3. Concepto de Campo Clave 3. Búsqueda Secuencial v[1] v[2] v[3] v[4] v[5] v[6] v[7] v[8] n bus i enc pos 10 3 4 11 7 1 2 T 4. Búsqueda Secuencial con Centinela 5. Búsqueda Binaria o Dicotómica 6. Medida de la Complejidad de un Algoritmo 6.1. Valores del mejor, peor y caso medio 6.2. Comparación de las estrategias de búsqueda
53
Ejemplo valor encontrado
55 Ejemplo valor encontrado 1. Búsqueda automática de información i := 1; V[n+1] := buscado; WHILE (V[i] <> buscado) DO i := i +1; encontrado := (i < (n+1)); IF encontrado THEN pos := i; 2. Búsqueda en un vector 2.1. Recorrido con Tratamiento Selectivo 2.2. Vector Ordenado 2.3. Concepto de Campo Clave 3. Búsqueda Secuencial v[1] v[2] v[3] v[4] v[5] v[6] v[7] v[8] n bus i enc pos 10 3 4 11 7 1 2 T 4. Búsqueda Secuencial con Centinela 5. Búsqueda Binaria o Dicotómica 6. Medida de la Complejidad de un Algoritmo 6.1. Valores del mejor, peor y caso medio 6.2. Comparación de las estrategias de búsqueda
54
Ejemplo valor no encontrado
56 Ejemplo valor no encontrado i := 1; V[n+1] := buscado; WHILE (V[i] <> buscado) DO i := i +1; encontrado := (i < (n+1)); IF encontrado THEN pos := i; 1. Búsqueda automática de información 2. Búsqueda en un vector 2.1. Recorrido con Tratamiento Selectivo 2.2. Vector Ordenado 2.3. Concepto de Campo Clave v[1] v[2] v[3] v[4] v[5] v[6] v[7] v[8] n bus i enc pos 10 3 4 11 7 1 2 5 3. Búsqueda Secuencial 4. Búsqueda Secuencial con Centinela 5. Búsqueda Binaria o Dicotómica 6. Medida de la Complejidad de un Algoritmo 6.1. Valores del mejor, peor y caso medio 6.2. Comparación de las estrategias de búsqueda
55
Ejemplo valor no encontrado
57 Ejemplo valor no encontrado i := 1; V[n+1] := buscado; WHILE (V[i] <> buscado) DO i := i +1; encontrado := (i < (n+1)); IF encontrado THEN pos := i; 1. Búsqueda automática de información 2. Búsqueda en un vector 2.1. Recorrido con Tratamiento Selectivo 2.2. Vector Ordenado 2.3. Concepto de Campo Clave v[1] v[2] v[3] v[4] v[5] v[6] v[7] v[8] n bus i enc pos 10 3 4 11 7 1 2 5 3. Búsqueda Secuencial 4. Búsqueda Secuencial con Centinela 5. Búsqueda Binaria o Dicotómica 6. Medida de la Complejidad de un Algoritmo 6.1. Valores del mejor, peor y caso medio 6.2. Comparación de las estrategias de búsqueda
56
Ejemplo valor no encontrado
58 Ejemplo valor no encontrado i := 1; V[n+1] := buscado; WHILE (V[i] <> buscado) DO i := i +1; encontrado := (i < (n+1)); IF encontrado THEN pos := i; 1. Búsqueda automática de información 2. Búsqueda en un vector 2.1. Recorrido con Tratamiento Selectivo 2.2. Vector Ordenado 2.3. Concepto de Campo Clave v[1] v[2] v[3] v[4] v[5] v[6] v[7] v[8] n bus i enc pos 10 3 4 11 7 1 2 5 3. Búsqueda Secuencial 4. Búsqueda Secuencial con Centinela 5. Búsqueda Binaria o Dicotómica 6. Medida de la Complejidad de un Algoritmo 6.1. Valores del mejor, peor y caso medio 6.2. Comparación de las estrategias de búsqueda
57
Ejemplo valor no encontrado
59 Ejemplo valor no encontrado i := 1; V[n+1] := buscado; WHILE (V[i] <> buscado) DO i := i +1; encontrado := (i < (n+1)); IF encontrado THEN pos := i; 1. Búsqueda automática de información 2. Búsqueda en un vector 2.1. Recorrido con Tratamiento Selectivo 2.2. Vector Ordenado 2.3. Concepto de Campo Clave v[1] v[2] v[3] v[4] v[5] v[6] v[7] v[8] n bus i enc pos 10 3 4 11 7 1 2 5 3. Búsqueda Secuencial 4. Búsqueda Secuencial con Centinela 5. Búsqueda Binaria o Dicotómica 6. Medida de la Complejidad de un Algoritmo 6.1. Valores del mejor, peor y caso medio 6.2. Comparación de las estrategias de búsqueda
58
Ejemplo valor no encontrado
60 Ejemplo valor no encontrado i := 1; V[n+1] := buscado; WHILE (V[i] <> buscado) DO i := i +1; encontrado := (i < (n+1)); IF encontrado THEN pos := i; 1. Búsqueda automática de información 2. Búsqueda en un vector 2.1. Recorrido con Tratamiento Selectivo 2.2. Vector Ordenado 2.3. Concepto de Campo Clave v[1] v[2] v[3] v[4] v[5] v[6] v[7] v[8] n bus i enc pos 10 3 4 11 7 1 2 5 3. Búsqueda Secuencial 4. Búsqueda Secuencial con Centinela 5. Búsqueda Binaria o Dicotómica 6. Medida de la Complejidad de un Algoritmo 6.1. Valores del mejor, peor y caso medio 6.2. Comparación de las estrategias de búsqueda
59
Ejemplo valor no encontrado
61 Ejemplo valor no encontrado i := 1; V[n+1] := buscado; WHILE (V[i] <> buscado) DO i := i +1; encontrado := (i < (n+1)); IF encontrado THEN pos := i; 1. Búsqueda automática de información 2. Búsqueda en un vector 2.1. Recorrido con Tratamiento Selectivo 2.2. Vector Ordenado 2.3. Concepto de Campo Clave v[1] v[2] v[3] v[4] v[5] v[6] v[7] v[8] n bus i enc pos 10 3 4 11 7 1 2 5 3. Búsqueda Secuencial 4. Búsqueda Secuencial con Centinela 5. Búsqueda Binaria o Dicotómica 6. Medida de la Complejidad de un Algoritmo 6.1. Valores del mejor, peor y caso medio 6.2. Comparación de las estrategias de búsqueda
60
Ejemplo valor no encontrado
62 Ejemplo valor no encontrado i := 1; V[n+1] := buscado; WHILE (V[i] <> buscado) DO i := i +1; encontrado := (i < (n+1)); IF encontrado THEN pos := i; 1. Búsqueda automática de información 2. Búsqueda en un vector 2.1. Recorrido con Tratamiento Selectivo 2.2. Vector Ordenado 2.3. Concepto de Campo Clave v[1] v[2] v[3] v[4] v[5] v[6] v[7] v[8] n bus i enc pos 10 3 4 11 7 1 2 5 3. Búsqueda Secuencial 4. Búsqueda Secuencial con Centinela 5. Búsqueda Binaria o Dicotómica 6. Medida de la Complejidad de un Algoritmo 6.1. Valores del mejor, peor y caso medio 6.2. Comparación de las estrategias de búsqueda
61
Ejemplo valor no encontrado
63 Ejemplo valor no encontrado i := 1; V[n+1] := buscado; WHILE (V[i] <> buscado) DO i := i +1; encontrado := (i < (n+1)); IF encontrado THEN pos := i; 1. Búsqueda automática de información 2. Búsqueda en un vector 2.1. Recorrido con Tratamiento Selectivo 2.2. Vector Ordenado 2.3. Concepto de Campo Clave v[1] v[2] v[3] v[4] v[5] v[6] v[7] v[8] n bus i enc pos 10 3 4 11 7 1 2 5 6 3. Búsqueda Secuencial 4. Búsqueda Secuencial con Centinela 5. Búsqueda Binaria o Dicotómica 6. Medida de la Complejidad de un Algoritmo 6.1. Valores del mejor, peor y caso medio 6.2. Comparación de las estrategias de búsqueda
62
Ejemplo valor no encontrado
64 Ejemplo valor no encontrado i := 1; V[n+1] := buscado; WHILE (V[i] <> buscado) DO i := i +1; encontrado := (i < (n+1)); IF encontrado THEN pos := i; 1. Búsqueda automática de información 2. Búsqueda en un vector 2.1. Recorrido con Tratamiento Selectivo 2.2. Vector Ordenado 2.3. Concepto de Campo Clave v[1] v[2] v[3] v[4] v[5] v[6] v[7] v[8] n bus i enc pos 10 3 4 11 7 1 2 5 6 3. Búsqueda Secuencial 4. Búsqueda Secuencial con Centinela 5. Búsqueda Binaria o Dicotómica 6. Medida de la Complejidad de un Algoritmo 6.1. Valores del mejor, peor y caso medio 6.2. Comparación de las estrategias de búsqueda
63
Ejemplo valor no encontrado
65 Ejemplo valor no encontrado i := 1; V[n+1] := buscado; WHILE (V[i] <> buscado) DO i := i +1; encontrado := (i < (n+1)); IF encontrado THEN pos := i; 1. Búsqueda automática de información 2. Búsqueda en un vector 2.1. Recorrido con Tratamiento Selectivo 2.2. Vector Ordenado 2.3. Concepto de Campo Clave v[1] v[2] v[3] v[4] v[5] v[6] v[7] v[8] n bus i enc pos 10 3 4 11 7 1 2 5 6 8 3. Búsqueda Secuencial 4. Búsqueda Secuencial con Centinela 5. Búsqueda Binaria o Dicotómica 6. Medida de la Complejidad de un Algoritmo 6.1. Valores del mejor, peor y caso medio 6.2. Comparación de las estrategias de búsqueda
64
Ejemplo valor no encontrado
66 Ejemplo valor no encontrado i := 1; V[n+1] := buscado; WHILE (V[i] <> buscado) DO i := i +1; encontrado := (i < (n+1)); IF encontrado THEN pos := i; 1. Búsqueda automática de información 2. Búsqueda en un vector 2.1. Recorrido con Tratamiento Selectivo 2.2. Vector Ordenado 2.3. Concepto de Campo Clave v[1] v[2] v[3] v[4] v[5] v[6] v[7] v[8] n bus i enc pos 10 3 4 11 7 1 2 5 6 8 F 3. Búsqueda Secuencial 4. Búsqueda Secuencial con Centinela 5. Búsqueda Binaria o Dicotómica 6. Medida de la Complejidad de un Algoritmo 6.1. Valores del mejor, peor y caso medio 6.2. Comparación de las estrategias de búsqueda
65
Ejemplo valor no encontrado
67 Ejemplo valor no encontrado i := 1; V[n+1] := buscado; WHILE (V[i] <> buscado) DO i := i +1; encontrado := (i < (n+1)); IF encontrado THEN pos := i; 1. Búsqueda automática de información 2. Búsqueda en un vector 2.1. Recorrido con Tratamiento Selectivo 2.2. Vector Ordenado 2.3. Concepto de Campo Clave v[1] v[2] v[3] v[4] v[5] v[6] v[7] v[8] n bus i enc pos 10 3 4 11 7 1 2 5 6 8 F 3. Búsqueda Secuencial 4. Búsqueda Secuencial con Centinela 5. Búsqueda Binaria o Dicotómica 6. Medida de la Complejidad de un Algoritmo 6.1. Valores del mejor, peor y caso medio 6.2. Comparación de las estrategias de búsqueda
66
Búsqueda Binaria o Dicotómica
68 Búsqueda Binaria o Dicotómica 1. Búsqueda automática de información 2. Búsqueda en un vector 2.1. Recorrido con Tratamiento Selectivo Sólo vectores ordenados Vectores grandes Cada iteración divide por la mitad la zona de búsqueda 2.2. Vector Ordenado 2.3. Concepto de Campo Clave 3. Búsqueda Secuencial 4. Búsqueda Secuencial con Centinela 5. Búsqueda Binaria o Dicotómica izda medio der 6. Medida de la Complejidad de un Algoritmo ? 6.1. Valores del mejor, peor y caso medio n/ n 6.2. Comparación de las estrategias de búsqueda
67
Búsqueda Binaria o Dicotómica
69 Búsqueda Binaria o Dicotómica 1. Búsqueda automática de información 2. Búsqueda en un vector 2.1. Recorrido con Tratamiento Selectivo Sólo vectores ordenados Vectores grandes Cada iteración divide por la mitad la zona de búsqueda 2.2. Vector Ordenado 2.3. Concepto de Campo Clave 3. Búsqueda Secuencial 4. Búsqueda Secuencial con Centinela 5. Búsqueda Binaria o Dicotómica izda medio der 6. Medida de la Complejidad de un Algoritmo >= 6.1. Valores del mejor, peor y caso medio n/ n 6.2. Comparación de las estrategias de búsqueda
68
Búsqueda Binaria o Dicotómica
70 Búsqueda Binaria o Dicotómica 1. Búsqueda automática de información 2. Búsqueda en un vector 2.1. Recorrido con Tratamiento Selectivo Sólo vectores ordenados Vectores grandes Cada iteración divide por la mitad la zona de búsqueda 2.2. Vector Ordenado 2.3. Concepto de Campo Clave 3. Búsqueda Secuencial 4. Búsqueda Secuencial con Centinela 5. Búsqueda Binaria o Dicotómica izda medio der 6. Medida de la Complejidad de un Algoritmo ? 6.1. Valores del mejor, peor y caso medio n/ n 6.2. Comparación de las estrategias de búsqueda
69
Búsqueda Binaria con comparación de igualdad
71 Búsqueda Binaria con comparación de igualdad 1. Búsqueda automática de información 2. Búsqueda en un vector Si V[medio] = buscado 2.1. Recorrido con Tratamiento Selectivo = 2.2. Vector Ordenado izda medio der 2.3. Concepto de Campo Clave 3. Búsqueda Secuencial 4. Búsqueda Secuencial con Centinela 5. Búsqueda Binaria o Dicotómica 6. Medida de la Complejidad de un Algoritmo 6.1. Valores del mejor, peor y caso medio 6.2. Comparación de las estrategias de búsqueda
70
Búsqueda Binaria con comparación de igualdad
72 Búsqueda Binaria con comparación de igualdad 1. Búsqueda automática de información 2. Búsqueda en un vector Si V[medio] = buscado Si V[medio] > buscado 2.1. Recorrido con Tratamiento Selectivo = 2.2. Vector Ordenado izda medio der 2.3. Concepto de Campo Clave 3. Búsqueda Secuencial > 4. Búsqueda Secuencial con Centinela izda medio der 5. Búsqueda Binaria o Dicotómica 6. Medida de la Complejidad de un Algoritmo 6.1. Valores del mejor, peor y caso medio 6.2. Comparación de las estrategias de búsqueda
71
Búsqueda Binaria con comparación de igualdad
73 Búsqueda Binaria con comparación de igualdad 1. Búsqueda automática de información 2. Búsqueda en un vector Si V[medio] = buscado Si V[medio] > buscado 2.1. Recorrido con Tratamiento Selectivo = 2.2. Vector Ordenado izda medio der 2.3. Concepto de Campo Clave 3. Búsqueda Secuencial > 4. Búsqueda Secuencial con Centinela izda medio der 5. Búsqueda Binaria o Dicotómica 6. Medida de la Complejidad de un Algoritmo 6.1. Valores del mejor, peor y caso medio 6.2. Comparación de las estrategias de búsqueda
72
Búsqueda Binaria con comparación de igualdad
74 Búsqueda Binaria con comparación de igualdad 1. Búsqueda automática de información 2. Búsqueda en un vector Si V[medio] = buscado Si V[medio] > buscado Si V[medio] < buscado 2.1. Recorrido con Tratamiento Selectivo = 2.2. Vector Ordenado izda medio der 2.3. Concepto de Campo Clave 3. Búsqueda Secuencial > 4. Búsqueda Secuencial con Centinela izda medio der 5. Búsqueda Binaria o Dicotómica 6. Medida de la Complejidad de un Algoritmo < 6.1. Valores del mejor, peor y caso medio izda medio der 6.2. Comparación de las estrategias de búsqueda
73
Búsqueda Binaria con comparación de igualdad
75 Búsqueda Binaria con comparación de igualdad 1. Búsqueda automática de información 2. Búsqueda en un vector Si V[medio] = buscado Si V[medio] > buscado Si V[medio] < buscado 2.1. Recorrido con Tratamiento Selectivo = 2.2. Vector Ordenado izda medio der 2.3. Concepto de Campo Clave 3. Búsqueda Secuencial > 4. Búsqueda Secuencial con Centinela izda medio der 5. Búsqueda Binaria o Dicotómica 6. Medida de la Complejidad de un Algoritmo < 6.1. Valores del mejor, peor y caso medio izda medio der 6.2. Comparación de las estrategias de búsqueda
74
Búsqueda Binaria con comparación de igualdad
76 Búsqueda Binaria con comparación de igualdad 1. Búsqueda automática de información 2. Búsqueda en un vector CONST n = ...; VAR buscado: <tipo>; V: ARRAY [1..n] OF <tipo>; izda, der: 0..(n+1); pos, medio: 1..n; encontrado: BOOLEAN; 2.1. Recorrido con Tratamiento Selectivo 2.2. Vector Ordenado 2.3. Concepto de Campo Clave 3. Búsqueda Secuencial 4. Búsqueda Secuencial con Centinela 5. Búsqueda Binaria o Dicotómica 6. Medida de la Complejidad de un Algoritmo 6.1. Valores del mejor, peor y caso medio 6.2. Comparación de las estrategias de búsqueda
75
Búsqueda Binaria con comparación de igualdad
77 Búsqueda Binaria con comparación de igualdad 1. Búsqueda automática de información 2. Búsqueda en un vector izda := 1; der := n; encontrado := FALSE; WHILE (NOT encontrado) AND (izda <= der) DO BEGIN medio := (izda + der) div 2; encontrado := (V[medio] = buscado); IF (NOT encontrado) THEN IF (V[medio] > buscado) THEN der := medio – 1 ELSE izda := medio + 1 END; IF encontrado THEN pos := medio; 2.1. Recorrido con Tratamiento Selectivo 2.2. Vector Ordenado 2.3. Concepto de Campo Clave 3. Búsqueda Secuencial 4. Búsqueda Secuencial con Centinela 5. Búsqueda Binaria o Dicotómica 6. Medida de la Complejidad de un Algoritmo 6.1. Valores del mejor, peor y caso medio 6.2. Comparación de las estrategias de búsqueda
76
Ejemplo valor encontrado
78 izda := 1; der := n; encontrado := FALSE; WHILE (NOT encontrado) AND (izda <= der) DO BEGIN medio := (izda + der) div 2; encontrado := (V[medio] = buscado); IF (NOT encontrado) THEN IF (V[medio] > buscado) THEN der := medio – 1 ELSE izda := medio + 1 END; IF encontrado THEN pos := medio; 1. Búsqueda automática de información 2. Búsqueda en un vector 2.1. Recorrido con Tratamiento Selectivo 2.2. Vector Ordenado 2.3. Concepto de Campo Clave 3. Búsqueda Secuencial v[1] v[2] v[3] v[4] v[5] v[6] v[7] bus izd der med enc pos 1 2 3 4 7 10 11 4. Búsqueda Secuencial con Centinela 5. Búsqueda Binaria o Dicotómica 6. Medida de la Complejidad de un Algoritmo 6.1. Valores del mejor, peor y caso medio 6.2. Comparación de las estrategias de búsqueda
77
Ejemplo valor encontrado
79 izda := 1; der := n; encontrado := FALSE; WHILE (NOT encontrado) AND (izda <= der) DO BEGIN medio := (izda + der) div 2; encontrado := (V[medio] = buscado); IF (NOT encontrado) THEN IF (V[medio] > buscado) THEN der := medio – 1 ELSE izda := medio + 1 END; IF encontrado THEN pos := medio; 1. Búsqueda automática de información 2. Búsqueda en un vector 2.1. Recorrido con Tratamiento Selectivo 2.2. Vector Ordenado 2.3. Concepto de Campo Clave 3. Búsqueda Secuencial v[1] v[2] v[3] v[4] v[5] v[6] v[7] bus izd der med enc pos 1 2 3 4 7 10 11 F 4. Búsqueda Secuencial con Centinela 5. Búsqueda Binaria o Dicotómica 6. Medida de la Complejidad de un Algoritmo 6.1. Valores del mejor, peor y caso medio 6.2. Comparación de las estrategias de búsqueda
78
Ejemplo valor encontrado
80 izda := 1; der := n; encontrado := FALSE; WHILE (NOT encontrado) AND (izda <= der) DO BEGIN medio := (izda + der) div 2; encontrado := (V[medio] = buscado); IF (NOT encontrado) THEN IF (V[medio] > buscado) THEN der := medio – 1 ELSE izda := medio + 1 END; IF encontrado THEN pos := medio; 1. Búsqueda automática de información 2. Búsqueda en un vector 2.1. Recorrido con Tratamiento Selectivo 2.2. Vector Ordenado 2.3. Concepto de Campo Clave 3. Búsqueda Secuencial v[1] v[2] v[3] v[4] v[5] v[6] v[7] bus izd der med enc pos 1 2 3 4 7 10 11 F 5 4. Búsqueda Secuencial con Centinela 5. Búsqueda Binaria o Dicotómica 6. Medida de la Complejidad de un Algoritmo 6.1. Valores del mejor, peor y caso medio 6.2. Comparación de las estrategias de búsqueda
79
Ejemplo valor encontrado
81 izda := 1; der := n; encontrado := FALSE; WHILE (NOT encontrado) AND (izda <= der) DO BEGIN medio := (izda + der) div 2; encontrado := (V[medio] = buscado); IF (NOT encontrado) THEN IF (V[medio] > buscado) THEN der := medio – 1 ELSE izda := medio + 1 END; IF encontrado THEN pos := medio; 1. Búsqueda automática de información 2. Búsqueda en un vector 2.1. Recorrido con Tratamiento Selectivo 2.2. Vector Ordenado 2.3. Concepto de Campo Clave 3. Búsqueda Secuencial v[1] v[2] v[3] v[4] v[5] v[6] v[7] bus izd der med enc pos 1 2 3 4 7 10 11 F 5 6 4. Búsqueda Secuencial con Centinela 5. Búsqueda Binaria o Dicotómica 6. Medida de la Complejidad de un Algoritmo 6.1. Valores del mejor, peor y caso medio 6.2. Comparación de las estrategias de búsqueda
80
Ejemplo valor encontrado
82 izda := 1; der := n; encontrado := FALSE; WHILE (NOT encontrado) AND (izda <= der) DO BEGIN medio := (izda + der) div 2; encontrado := (V[medio] = buscado); IF (NOT encontrado) THEN IF (V[medio] > buscado) THEN der := medio – 1 ELSE izda := medio + 1 END; IF encontrado THEN pos := medio; 1. Búsqueda automática de información 2. Búsqueda en un vector 2.1. Recorrido con Tratamiento Selectivo 2.2. Vector Ordenado 2.3. Concepto de Campo Clave 3. Búsqueda Secuencial v[1] v[2] v[3] v[4] v[5] v[6] v[7] bus izd der med enc pos 1 2 3 4 7 10 11 F 5 6 T 4. Búsqueda Secuencial con Centinela 5. Búsqueda Binaria o Dicotómica 6. Medida de la Complejidad de un Algoritmo 6.1. Valores del mejor, peor y caso medio 6.2. Comparación de las estrategias de búsqueda
81
Ejemplo valor encontrado
83 izda := 1; der := n; encontrado := FALSE; WHILE (NOT encontrado) AND (izda <= der) DO BEGIN medio := (izda + der) div 2; encontrado := (V[medio] = buscado); IF (NOT encontrado) THEN IF (V[medio] > buscado) THEN der := medio – 1 ELSE izda := medio + 1 END; IF encontrado THEN pos := medio; 1. Búsqueda automática de información 2. Búsqueda en un vector 2.1. Recorrido con Tratamiento Selectivo 2.2. Vector Ordenado 2.3. Concepto de Campo Clave 3. Búsqueda Secuencial v[1] v[2] v[3] v[4] v[5] v[6] v[7] bus izd der med enc pos 1 2 3 4 7 10 11 F 5 6 T 4. Búsqueda Secuencial con Centinela 5. Búsqueda Binaria o Dicotómica 6. Medida de la Complejidad de un Algoritmo 6.1. Valores del mejor, peor y caso medio 6.2. Comparación de las estrategias de búsqueda
82
Ejemplo valor no encontrado
84 1. Búsqueda automática de información izda := 1; der := n; encontrado := FALSE; WHILE (NOT encontrado) AND (izda <= der) DO BEGIN medio := (izda + der) div 2; encontrado := (V[medio] = buscado); IF (NOT encontrado) THEN IF (V[medio] > buscado) THEN der := medio – 1 ELSE izda := medio + 1 END; IF encontrado THEN pos := medio; 2. Búsqueda en un vector 2.1. Recorrido con Tratamiento Selectivo 2.2. Vector Ordenado 2.3. Concepto de Campo Clave 3. Búsqueda Secuencial 4. Búsqueda Secuencial con Centinela v[1] v[2] v[3] v[4] v[5] v[6] v[7] bus izd der med enc pos 1 2 3 4 7 10 11 6 5. Búsqueda Binaria o Dicotómica 6. Medida de la Complejidad de un Algoritmo 6.1. Valores del mejor, peor y caso medio 6.2. Comparación de las estrategias de búsqueda
83
Ejemplo valor no encontrado
85 1. Búsqueda automática de información izda := 1; der := n; encontrado := FALSE; WHILE (NOT encontrado) AND (izda <= der) DO BEGIN medio := (izda + der) div 2; encontrado := (V[medio] = buscado); IF (NOT encontrado) THEN IF (V[medio] > buscado) THEN der := medio – 1 ELSE izda := medio + 1 END; IF encontrado THEN pos := medio; 2. Búsqueda en un vector 2.1. Recorrido con Tratamiento Selectivo 2.2. Vector Ordenado 2.3. Concepto de Campo Clave 3. Búsqueda Secuencial 4. Búsqueda Secuencial con Centinela v[1] v[2] v[3] v[4] v[5] v[6] v[7] bus izd der med enc pos 1 2 3 4 7 10 11 6 F 5. Búsqueda Binaria o Dicotómica 6. Medida de la Complejidad de un Algoritmo 6.1. Valores del mejor, peor y caso medio 6.2. Comparación de las estrategias de búsqueda
84
Ejemplo valor no encontrado
86 1. Búsqueda automática de información izda := 1; der := n; encontrado := FALSE; WHILE (NOT encontrado) AND (izda <= der) DO BEGIN medio := (izda + der) div 2; encontrado := (V[medio] = buscado); IF (NOT encontrado) THEN IF (V[medio] > buscado) THEN der := medio – 1 ELSE izda := medio + 1 END; IF encontrado THEN pos := medio; 2. Búsqueda en un vector 2.1. Recorrido con Tratamiento Selectivo 2.2. Vector Ordenado 2.3. Concepto de Campo Clave 3. Búsqueda Secuencial 4. Búsqueda Secuencial con Centinela v[1] v[2] v[3] v[4] v[5] v[6] v[7] bus izd der med enc pos 1 2 3 4 7 10 11 6 F 5 5. Búsqueda Binaria o Dicotómica 6. Medida de la Complejidad de un Algoritmo 6.1. Valores del mejor, peor y caso medio 6.2. Comparación de las estrategias de búsqueda
85
Ejemplo valor no encontrado
87 1. Búsqueda automática de información izda := 1; der := n; encontrado := FALSE; WHILE (NOT encontrado) AND (izda <= der) DO BEGIN medio := (izda + der) div 2; encontrado := (V[medio] = buscado); IF (NOT encontrado) THEN IF (V[medio] > buscado) THEN der := medio – 1 ELSE izda := medio + 1 END; IF encontrado THEN pos := medio; 2. Búsqueda en un vector 2.1. Recorrido con Tratamiento Selectivo 2.2. Vector Ordenado 2.3. Concepto de Campo Clave 3. Búsqueda Secuencial 4. Búsqueda Secuencial con Centinela v[1] v[2] v[3] v[4] v[5] v[6] v[7] bus izd der med enc pos 1 2 3 4 7 10 11 6 F 5 5. Búsqueda Binaria o Dicotómica 6. Medida de la Complejidad de un Algoritmo 6.1. Valores del mejor, peor y caso medio 6.2. Comparación de las estrategias de búsqueda
86
Ejemplo valor no encontrado
88 1. Búsqueda automática de información izda := 1; der := n; encontrado := FALSE; WHILE (NOT encontrado) AND (izda <= der) DO BEGIN medio := (izda + der) div 2; encontrado := (V[medio] = buscado); IF (NOT encontrado) THEN IF (V[medio] > buscado) THEN der := medio – 1 ELSE izda := medio + 1 END; IF encontrado THEN pos := medio; 2. Búsqueda en un vector 2.1. Recorrido con Tratamiento Selectivo 2.2. Vector Ordenado 2.3. Concepto de Campo Clave 3. Búsqueda Secuencial 4. Búsqueda Secuencial con Centinela v[1] v[2] v[3] v[4] v[5] v[6] v[7] bus izd der med enc pos 1 2 3 4 7 10 11 6 F 5 5. Búsqueda Binaria o Dicotómica 6. Medida de la Complejidad de un Algoritmo 6.1. Valores del mejor, peor y caso medio 6.2. Comparación de las estrategias de búsqueda
87
Ejemplo valor no encontrado
89 1. Búsqueda automática de información izda := 1; der := n; encontrado := FALSE; WHILE (NOT encontrado) AND (izda <= der) DO BEGIN medio := (izda + der) div 2; encontrado := (V[medio] = buscado); IF (NOT encontrado) THEN IF (V[medio] > buscado) THEN der := medio – 1 ELSE izda := medio + 1 END; IF encontrado THEN pos := medio; 2. Búsqueda en un vector 2.1. Recorrido con Tratamiento Selectivo 2.2. Vector Ordenado 2.3. Concepto de Campo Clave 3. Búsqueda Secuencial 4. Búsqueda Secuencial con Centinela v[1] v[2] v[3] v[4] v[5] v[6] v[7] bus izd der med enc pos 1 2 3 4 7 10 11 6 F 5 5. Búsqueda Binaria o Dicotómica 6. Medida de la Complejidad de un Algoritmo 6.1. Valores del mejor, peor y caso medio 6.2. Comparación de las estrategias de búsqueda
88
Búsqueda Binaria Eliminar una condición de la iteración
90 Búsqueda Binaria 1. Búsqueda automática de información 2. Búsqueda en un vector 2.1. Recorrido con Tratamiento Selectivo Eliminar una condición de la iteración buscado en izda Incluir la igualdad V[medio] <= buscado → erróneo V[medio] >= buscado → correcto 2.2. Vector Ordenado 2.3. Concepto de Campo Clave 3. Búsqueda Secuencial 4. Búsqueda Secuencial con Centinela 5. Búsqueda Binaria o Dicotómica 6. Medida de la Complejidad de un Algoritmo 6.1. Valores del mejor, peor y caso medio 6.2. Comparación de las estrategias de búsqueda
89
Búsqueda Binaria errónea
91 Búsqueda Binaria errónea 1. Búsqueda automática de información 2. Búsqueda en un vector Si V[medio] > buscado 2.1. Recorrido con Tratamiento Selectivo > 2.2. Vector Ordenado izda medio der 2.3. Concepto de Campo Clave 3. Búsqueda Secuencial 4. Búsqueda Secuencial con Centinela 5. Búsqueda Binaria o Dicotómica 6. Medida de la Complejidad de un Algoritmo 6.1. Valores del mejor, peor y caso medio 6.2. Comparación de las estrategias de búsqueda
90
Búsqueda Binaria errónea
92 Búsqueda Binaria errónea 1. Búsqueda automática de información 2. Búsqueda en un vector Si V[medio] > buscado 2.1. Recorrido con Tratamiento Selectivo > 2.2. Vector Ordenado izda medio der 2.3. Concepto de Campo Clave 3. Búsqueda Secuencial 4. Búsqueda Secuencial con Centinela 5. Búsqueda Binaria o Dicotómica 6. Medida de la Complejidad de un Algoritmo 6.1. Valores del mejor, peor y caso medio 6.2. Comparación de las estrategias de búsqueda
91
Búsqueda Binaria errónea
93 Búsqueda Binaria errónea 1. Búsqueda automática de información 2. Búsqueda en un vector Si V[medio] > buscado Si V[medio] <= buscado 2.1. Recorrido con Tratamiento Selectivo > 2.2. Vector Ordenado izda medio der 2.3. Concepto de Campo Clave 3. Búsqueda Secuencial 4. Búsqueda Secuencial con Centinela 5. Búsqueda Binaria o Dicotómica <= 6. Medida de la Complejidad de un Algoritmo izda medio der 6.1. Valores del mejor, peor y caso medio 6.2. Comparación de las estrategias de búsqueda
92
Búsqueda Binaria errónea
94 Búsqueda Binaria errónea 1. Búsqueda automática de información 2. Búsqueda en un vector Si V[medio] > buscado Si V[medio] <= buscado 2.1. Recorrido con Tratamiento Selectivo izda medio der > 2.2. Vector Ordenado 2.3. Concepto de Campo Clave 3. Búsqueda Secuencial 4. Búsqueda Secuencial con Centinela 5. Búsqueda Binaria o Dicotómica <= 6. Medida de la Complejidad de un Algoritmo izda medio der 6.1. Valores del mejor, peor y caso medio 6.2. Comparación de las estrategias de búsqueda
93
Búsqueda Binaria errónea
95 Búsqueda Binaria errónea 1. Búsqueda automática de información 2. Búsqueda en un vector CONST n = ...; VAR buscado: <tipo>; V: ARRAY [1..n] OF <tipo>; izda, der: 0..(n+1); pos, medio: 1..n; encontrado: BOOLEAN; 2.1. Recorrido con Tratamiento Selectivo 2.2. Vector Ordenado 2.3. Concepto de Campo Clave 3. Búsqueda Secuencial 4. Búsqueda Secuencial con Centinela 5. Búsqueda Binaria o Dicotómica 6. Medida de la Complejidad de un Algoritmo 6.1. Valores del mejor, peor y caso medio 6.2. Comparación de las estrategias de búsqueda
94
Búsqueda Binaria errónea
96 Búsqueda Binaria errónea 1. Búsqueda automática de información izda := 1; der := n; WHILE (izda <> der) DO BEGIN medio := (izda + der) div 2; IF (V[medio] > buscado) THEN der := medio – 1 ELSE izda := medio END; encontrado := (V[izda] = buscado); IF encontrado THEN pos := izda; 2. Búsqueda en un vector 2.1. Recorrido con Tratamiento Selectivo 2.2. Vector Ordenado 2.3. Concepto de Campo Clave 3. Búsqueda Secuencial 4. Búsqueda Secuencial con Centinela 5. Búsqueda Binaria o Dicotómica 6. Medida de la Complejidad de un Algoritmo 6.1. Valores del mejor, peor y caso medio 6.2. Comparación de las estrategias de búsqueda
95
Búsqueda Binaria errónea
97 Búsqueda Binaria errónea 1. Búsqueda automática de información 2. Búsqueda en un vector 2.1. Recorrido con Tratamiento Selectivo 2.2. Vector Ordenado izda medio der 2.3. Concepto de Campo Clave ? ? ? 3. Búsqueda Secuencial 4. Búsqueda Secuencial con Centinela 5. Búsqueda Binaria o Dicotómica 6. Medida de la Complejidad de un Algoritmo 6.1. Valores del mejor, peor y caso medio 6.2. Comparación de las estrategias de búsqueda
96
Búsqueda Binaria errónea
98 Búsqueda Binaria errónea 1. Búsqueda automática de información 2. Búsqueda en un vector V[medio] > buscado (der := medio – 1) 2.1. Recorrido con Tratamiento Selectivo der medio 2.2. Vector Ordenado > > izda medio der 2.3. Concepto de Campo Clave izda ? ? ? 3. Búsqueda Secuencial 4. Búsqueda Secuencial con Centinela 5. Búsqueda Binaria o Dicotómica 6. Medida de la Complejidad de un Algoritmo 6.1. Valores del mejor, peor y caso medio 6.2. Comparación de las estrategias de búsqueda
97
Búsqueda Binaria errónea
99 Búsqueda Binaria errónea 1. Búsqueda automática de información 2. Búsqueda en un vector V[medio] > buscado (der := medio – 1) 2.1. Recorrido con Tratamiento Selectivo der medio Fin 2.2. Vector Ordenado > > izda medio der 2.3. Concepto de Campo Clave izda ? ? ? 3. Búsqueda Secuencial 4. Búsqueda Secuencial con Centinela 5. Búsqueda Binaria o Dicotómica 6. Medida de la Complejidad de un Algoritmo 6.1. Valores del mejor, peor y caso medio 6.2. Comparación de las estrategias de búsqueda
98
Búsqueda Binaria errónea
100 Búsqueda Binaria errónea 1. Búsqueda automática de información 2. Búsqueda en un vector V[medio] > buscado (der := medio – 1) 2.1. Recorrido con Tratamiento Selectivo der medio Fin 2.2. Vector Ordenado > > izda medio der 2.3. Concepto de Campo Clave izda ? ? ? 3. Búsqueda Secuencial 4. Búsqueda Secuencial con Centinela V[medio] <= buscado (izda := medio) 5. Búsqueda Binaria o Dicotómica medio der 6. Medida de la Complejidad de un Algoritmo <= 6.1. Valores del mejor, peor y caso medio izda 6.2. Comparación de las estrategias de búsqueda
99
Búsqueda Binaria errónea
101 Búsqueda Binaria errónea 1. Búsqueda automática de información 2. Búsqueda en un vector V[medio] > buscado (der := medio – 1) 2.1. Recorrido con Tratamiento Selectivo der medio Fin 2.2. Vector Ordenado > > izda medio der 2.3. Concepto de Campo Clave izda ? ? ? 3. Búsqueda Secuencial 4. Búsqueda Secuencial con Centinela V[medio] <= buscado (izda := medio) 5. Búsqueda Binaria o Dicotómica medio der Bucle Infinito 6. Medida de la Complejidad de un Algoritmo <= 6.1. Valores del mejor, peor y caso medio izda 6.2. Comparación de las estrategias de búsqueda
100
Búsqueda Binaria correcta
102 Búsqueda Binaria correcta 1. Búsqueda automática de información 2. Búsqueda en un vector Si V[medio] < buscado 2.1. Recorrido con Tratamiento Selectivo < 2.2. Vector Ordenado izda medio der 2.3. Concepto de Campo Clave 3. Búsqueda Secuencial 4. Búsqueda Secuencial con Centinela 5. Búsqueda Binaria o Dicotómica 6. Medida de la Complejidad de un Algoritmo 6.1. Valores del mejor, peor y caso medio 6.2. Comparación de las estrategias de búsqueda
101
Búsqueda Binaria correcta
103 Búsqueda Binaria correcta 1. Búsqueda automática de información 2. Búsqueda en un vector Si V[medio] < buscado 2.1. Recorrido con Tratamiento Selectivo < 2.2. Vector Ordenado izda medio der 2.3. Concepto de Campo Clave 3. Búsqueda Secuencial 4. Búsqueda Secuencial con Centinela 5. Búsqueda Binaria o Dicotómica 6. Medida de la Complejidad de un Algoritmo 6.1. Valores del mejor, peor y caso medio 6.2. Comparación de las estrategias de búsqueda
102
Búsqueda Binaria correcta
104 Búsqueda Binaria correcta 1. Búsqueda automática de información 2. Búsqueda en un vector Si V[medio] < buscado Si V[medio] >= buscado 2.1. Recorrido con Tratamiento Selectivo < 2.2. Vector Ordenado izda medio der 2.3. Concepto de Campo Clave 3. Búsqueda Secuencial 4. Búsqueda Secuencial con Centinela 5. Búsqueda Binaria o Dicotómica >= 6. Medida de la Complejidad de un Algoritmo izda medio der 6.1. Valores del mejor, peor y caso medio 6.2. Comparación de las estrategias de búsqueda
103
Búsqueda Binaria correcta
105 Búsqueda Binaria correcta 1. Búsqueda automática de información 2. Búsqueda en un vector Si V[medio] < buscado Si V[medio] >= buscado 2.1. Recorrido con Tratamiento Selectivo < 2.2. Vector Ordenado izda medio der 2.3. Concepto de Campo Clave 3. Búsqueda Secuencial 4. Búsqueda Secuencial con Centinela 5. Búsqueda Binaria o Dicotómica >= 6. Medida de la Complejidad de un Algoritmo izda medio der 6.1. Valores del mejor, peor y caso medio 6.2. Comparación de las estrategias de búsqueda
104
Búsqueda Binaria correcta
106 Búsqueda Binaria correcta 1. Búsqueda automática de información 2. Búsqueda en un vector CONST n = ...; VAR buscado: <tipo>; V: ARRAY [1..n] OF <tipo>; izda, der: 0..(n+1); pos, medio: 1..n; encontrado: BOOLEAN; 2.1. Recorrido con Tratamiento Selectivo 2.2. Vector Ordenado 2.3. Concepto de Campo Clave 3. Búsqueda Secuencial 4. Búsqueda Secuencial con Centinela 5. Búsqueda Binaria o Dicotómica 6. Medida de la Complejidad de un Algoritmo 6.1. Valores del mejor, peor y caso medio 6.2. Comparación de las estrategias de búsqueda
105
Búsqueda Binaria correcta
107 Búsqueda Binaria correcta 1. Búsqueda automática de información izda := 1; der := n; WHILE (izda <> der) DO BEGIN medio := (izda + der) div 2; IF (V[medio] < buscado) THEN izda := medio + 1 ELSE der := medio END; encontrado := (V[izda] = buscado); IF encontrado THEN pos := izda; 2. Búsqueda en un vector 2.1. Recorrido con Tratamiento Selectivo 2.2. Vector Ordenado 2.3. Concepto de Campo Clave 3. Búsqueda Secuencial 4. Búsqueda Secuencial con Centinela 5. Búsqueda Binaria o Dicotómica 6. Medida de la Complejidad de un Algoritmo 6.1. Valores del mejor, peor y caso medio 6.2. Comparación de las estrategias de búsqueda
106
Ejemplo valor encontrado
108 izda := 1; der := n; WHILE (izda <> der) DO BEGIN medio := (izda + der) div 2; IF (V[medio] < buscado) THEN izda := medio + 1 ELSE der := medio END; encontrado := (V[izda] = buscado); IF encontrado THEN pos := izda; 1. Búsqueda automática de información 2. Búsqueda en un vector 2.1. Recorrido con Tratamiento Selectivo 2.2. Vector Ordenado 2.3. Concepto de Campo Clave 3. Búsqueda Secuencial v[1] v[2] v[3] v[4] v[5] v[6] v[7] bus izd der med enc pos 1 2 3 4 7 10 11 4. Búsqueda Secuencial con Centinela 5. Búsqueda Binaria o Dicotómica 6. Medida de la Complejidad de un Algoritmo 6.1. Valores del mejor, peor y caso medio 6.2. Comparación de las estrategias de búsqueda
107
Ejemplo valor encontrado
109 izda := 1; der := n; WHILE (izda <> der) DO BEGIN medio := (izda + der) div 2; IF (V[medio] < buscado) THEN izda := medio + 1 ELSE der := medio END; encontrado := (V[izda] = buscado); IF encontrado THEN pos := izda; 1. Búsqueda automática de información 2. Búsqueda en un vector 2.1. Recorrido con Tratamiento Selectivo 2.2. Vector Ordenado 2.3. Concepto de Campo Clave 3. Búsqueda Secuencial v[1] v[2] v[3] v[4] v[5] v[6] v[7] bus izd der med enc pos 1 2 3 4 7 10 11 4. Búsqueda Secuencial con Centinela 5. Búsqueda Binaria o Dicotómica 6. Medida de la Complejidad de un Algoritmo 6.1. Valores del mejor, peor y caso medio 6.2. Comparación de las estrategias de búsqueda
108
Ejemplo valor encontrado
110 izda := 1; der := n; WHILE (izda <> der) DO BEGIN medio := (izda + der) div 2; IF (V[medio] < buscado) THEN izda := medio + 1 ELSE der := medio END; encontrado := (V[izda] = buscado); IF encontrado THEN pos := izda; 1. Búsqueda automática de información 2. Búsqueda en un vector 2.1. Recorrido con Tratamiento Selectivo 2.2. Vector Ordenado 2.3. Concepto de Campo Clave 3. Búsqueda Secuencial v[1] v[2] v[3] v[4] v[5] v[6] v[7] bus izd der med enc pos 1 2 3 4 7 10 11 5 4. Búsqueda Secuencial con Centinela 5. Búsqueda Binaria o Dicotómica 6. Medida de la Complejidad de un Algoritmo 6.1. Valores del mejor, peor y caso medio 6.2. Comparación de las estrategias de búsqueda
109
Ejemplo valor encontrado
111 izda := 1; der := n; WHILE (izda <> der) DO BEGIN medio := (izda + der) div 2; IF (V[medio] < buscado) THEN izda := medio + 1 ELSE der := medio END; encontrado := (V[izda] = buscado); IF encontrado THEN pos := izda; 1. Búsqueda automática de información 2. Búsqueda en un vector 2.1. Recorrido con Tratamiento Selectivo 2.2. Vector Ordenado 2.3. Concepto de Campo Clave 3. Búsqueda Secuencial v[1] v[2] v[3] v[4] v[5] v[6] v[7] bus izd der med enc pos 1 2 3 4 7 10 11 5 6 4. Búsqueda Secuencial con Centinela 5. Búsqueda Binaria o Dicotómica 6. Medida de la Complejidad de un Algoritmo 6.1. Valores del mejor, peor y caso medio 6.2. Comparación de las estrategias de búsqueda
110
Ejemplo valor encontrado
112 izda := 1; der := n; WHILE (izda <> der) DO BEGIN medio := (izda + der) div 2; IF (V[medio] < buscado) THEN izda := medio + 1 ELSE der := medio END; encontrado := (V[izda] = buscado); IF encontrado THEN pos := izda; 1. Búsqueda automática de información 2. Búsqueda en un vector 2.1. Recorrido con Tratamiento Selectivo 2.2. Vector Ordenado 2.3. Concepto de Campo Clave 3. Búsqueda Secuencial v[1] v[2] v[3] v[4] v[5] v[6] v[7] bus izd der med enc pos 1 2 3 4 7 10 11 5 6 4. Búsqueda Secuencial con Centinela 5. Búsqueda Binaria o Dicotómica 6. Medida de la Complejidad de un Algoritmo 6.1. Valores del mejor, peor y caso medio 6.2. Comparación de las estrategias de búsqueda
111
Ejemplo valor encontrado
113 izda := 1; der := n; WHILE (izda <> der) DO BEGIN medio := (izda + der) div 2; IF (V[medio] < buscado) THEN izda := medio + 1 ELSE der := medio END; encontrado := (V[izda] = buscado); IF encontrado THEN pos := izda; 1. Búsqueda automática de información 2. Búsqueda en un vector 2.1. Recorrido con Tratamiento Selectivo 2.2. Vector Ordenado 2.3. Concepto de Campo Clave 3. Búsqueda Secuencial v[1] v[2] v[3] v[4] v[5] v[6] v[7] bus izd der med enc pos 1 2 3 4 7 10 11 5 6 T 4. Búsqueda Secuencial con Centinela 5. Búsqueda Binaria o Dicotómica 6. Medida de la Complejidad de un Algoritmo 6.1. Valores del mejor, peor y caso medio 6.2. Comparación de las estrategias de búsqueda
112
Ejemplo valor encontrado
114 izda := 1; der := n; WHILE (izda <> der) DO BEGIN medio := (izda + der) div 2; IF (V[medio] < buscado) THEN izda := medio + 1 ELSE der := medio END; encontrado := (V[izda] = buscado); IF encontrado THEN pos := izda; 1. Búsqueda automática de información 2. Búsqueda en un vector 2.1. Recorrido con Tratamiento Selectivo 2.2. Vector Ordenado 2.3. Concepto de Campo Clave 3. Búsqueda Secuencial v[1] v[2] v[3] v[4] v[5] v[6] v[7] bus izd der med enc pos 1 2 3 4 7 10 11 5 6 T 4. Búsqueda Secuencial con Centinela 5. Búsqueda Binaria o Dicotómica 6. Medida de la Complejidad de un Algoritmo 6.1. Valores del mejor, peor y caso medio 6.2. Comparación de las estrategias de búsqueda
113
Ejemplo valor no encontrado
115 izda := 1; der := n; WHILE (izda <> der) DO BEGIN medio := (izda + der) div 2; IF (V[medio] < buscado) THEN izda := medio + 1 ELSE der := medio END; encontrado := (V[izda] = buscado); IF encontrado THEN pos := izda; 1. Búsqueda automática de información 2. Búsqueda en un vector 2.1. Recorrido con Tratamiento Selectivo 2.2. Vector Ordenado 2.3. Concepto de Campo Clave 3. Búsqueda Secuencial v[1] v[2] v[3] v[4] v[5] v[6] v[7] bus izd der med enc pos 1 2 3 4 7 10 11 6 4. Búsqueda Secuencial con Centinela 5. Búsqueda Binaria o Dicotómica 6. Medida de la Complejidad de un Algoritmo 6.1. Valores del mejor, peor y caso medio 6.2. Comparación de las estrategias de búsqueda
114
Ejemplo valor no encontrado
116 izda := 1; der := n; WHILE (izda <> der) DO BEGIN medio := (izda + der) div 2; IF (V[medio] < buscado) THEN izda := medio + 1 ELSE der := medio END; encontrado := (V[izda] = buscado); IF encontrado THEN pos := izda; 1. Búsqueda automática de información 2. Búsqueda en un vector 2.1. Recorrido con Tratamiento Selectivo 2.2. Vector Ordenado 2.3. Concepto de Campo Clave 3. Búsqueda Secuencial v[1] v[2] v[3] v[4] v[5] v[6] v[7] bus izd der med enc pos 1 2 3 4 7 10 11 6 4. Búsqueda Secuencial con Centinela 5. Búsqueda Binaria o Dicotómica 6. Medida de la Complejidad de un Algoritmo 6.1. Valores del mejor, peor y caso medio 6.2. Comparación de las estrategias de búsqueda
115
Ejemplo valor no encontrado
117 izda := 1; der := n; WHILE (izda <> der) DO BEGIN medio := (izda + der) div 2; IF (V[medio] < buscado) THEN izda := medio + 1 ELSE der := medio END; encontrado := (V[izda] = buscado); IF encontrado THEN pos := izda; 1. Búsqueda automática de información 2. Búsqueda en un vector 2.1. Recorrido con Tratamiento Selectivo 2.2. Vector Ordenado 2.3. Concepto de Campo Clave 3. Búsqueda Secuencial v[1] v[2] v[3] v[4] v[5] v[6] v[7] bus izd der med enc pos 1 2 3 4 7 10 11 6 5 4. Búsqueda Secuencial con Centinela 5. Búsqueda Binaria o Dicotómica 6. Medida de la Complejidad de un Algoritmo 6.1. Valores del mejor, peor y caso medio 6.2. Comparación de las estrategias de búsqueda
116
Ejemplo valor no encontrado
118 izda := 1; der := n; WHILE (izda <> der) DO BEGIN medio := (izda + der) div 2; IF (V[medio] < buscado) THEN izda := medio + 1 ELSE der := medio END; encontrado := (V[izda] = buscado); IF encontrado THEN pos := izda; 1. Búsqueda automática de información 2. Búsqueda en un vector 2.1. Recorrido con Tratamiento Selectivo 2.2. Vector Ordenado 2.3. Concepto de Campo Clave 3. Búsqueda Secuencial v[1] v[2] v[3] v[4] v[5] v[6] v[7] bus izd der med enc pos 1 2 3 4 7 10 11 6 5 4. Búsqueda Secuencial con Centinela 5. Búsqueda Binaria o Dicotómica 6. Medida de la Complejidad de un Algoritmo 6.1. Valores del mejor, peor y caso medio 6.2. Comparación de las estrategias de búsqueda
117
Ejemplo valor no encontrado
119 izda := 1; der := n; WHILE (izda <> der) DO BEGIN medio := (izda + der) div 2; IF (V[medio] < buscado) THEN izda := medio + 1 ELSE der := medio END; encontrado := (V[izda] = buscado); IF encontrado THEN pos := izda; 1. Búsqueda automática de información 2. Búsqueda en un vector 2.1. Recorrido con Tratamiento Selectivo 2.2. Vector Ordenado 2.3. Concepto de Campo Clave 3. Búsqueda Secuencial v[1] v[2] v[3] v[4] v[5] v[6] v[7] bus izd der med enc pos 1 2 3 4 7 10 11 6 5 4. Búsqueda Secuencial con Centinela 5. Búsqueda Binaria o Dicotómica 6. Medida de la Complejidad de un Algoritmo 6.1. Valores del mejor, peor y caso medio 6.2. Comparación de las estrategias de búsqueda
118
Ejemplo valor no encontrado
120 izda := 1; der := n; WHILE (izda <> der) DO BEGIN medio := (izda + der) div 2; IF (V[medio] < buscado) THEN izda := medio + 1 ELSE der := medio END; encontrado := (V[izda] = buscado); IF encontrado THEN pos := izda; 1. Búsqueda automática de información 2. Búsqueda en un vector 2.1. Recorrido con Tratamiento Selectivo 2.2. Vector Ordenado 2.3. Concepto de Campo Clave 3. Búsqueda Secuencial v[1] v[2] v[3] v[4] v[5] v[6] v[7] bus izd der med enc pos 1 2 3 4 7 10 11 6 5 F 4. Búsqueda Secuencial con Centinela 5. Búsqueda Binaria o Dicotómica 6. Medida de la Complejidad de un Algoritmo 6.1. Valores del mejor, peor y caso medio 6.2. Comparación de las estrategias de búsqueda
119
Ejemplo valor no encontrado
121 izda := 1; der := n; WHILE (izda <> der) DO BEGIN medio := (izda + der) div 2; IF (V[medio] < buscado) THEN izda := medio + 1 ELSE der := medio END; encontrado := (V[izda] = buscado); IF encontrado THEN pos := izda; 1. Búsqueda automática de información 2. Búsqueda en un vector 2.1. Recorrido con Tratamiento Selectivo 2.2. Vector Ordenado 2.3. Concepto de Campo Clave 3. Búsqueda Secuencial v[1] v[2] v[3] v[4] v[5] v[6] v[7] bus izd der med enc pos 1 2 3 4 7 10 11 6 5 F 4. Búsqueda Secuencial con Centinela 5. Búsqueda Binaria o Dicotómica 6. Medida de la Complejidad de un Algoritmo 6.1. Valores del mejor, peor y caso medio 6.2. Comparación de las estrategias de búsqueda
120
Medida de la Complejidad de un Algoritmo
122 Medida de la Complejidad de un Algoritmo 1. Búsqueda automática de información 2. Búsqueda en un vector 2.1. Recorrido con Tratamiento Selectivo Eficiencia de un Algoritmo Memoria necesaria Tiempo de ejecución Tamaño de la entrada Máquina utilizada Código fuente Número de ejecuciones instrucciones del algoritmo Instrucción Operación Elemental Tiempo constante 2.2. Vector Ordenado 2.3. Concepto de Campo Clave 3. Búsqueda Secuencial 4. Búsqueda Secuencial con Centinela 5. Búsqueda Binaria o Dicotómica 6. Medida de la Complejidad de un Algoritmo 6.1. Valores del mejor, peor y caso medio 6.2. Comparación de las estrategias de búsqueda
121
Valores del mejor, peor y caso medio
123 Valores del mejor, peor y caso medio 1. Búsqueda automática de información 2. Búsqueda en un vector 2.1. Recorrido con Tratamiento Selectivo Número de Instrucciones Ejecutadas Comparaciones en las que interviene el vector Colocación de los datos Mejor caso Poca información Valor Medio de los casos Difícil de calcular Peor caso 2.2. Vector Ordenado 2.3. Concepto de Campo Clave 3. Búsqueda Secuencial 4. Búsqueda Secuencial con Centinela 5. Búsqueda Binaria o Dicotómica 6. Medida de la Complejidad de un Algoritmo 6.1. Valores del mejor, peor y caso medio 6.2. Comparación de las estrategias de búsqueda
122
Comparación de las Estrategias de Búsqueda
124 Comparación de las Estrategias de Búsqueda 1. Búsqueda automática de información 2. Búsqueda en un vector 2.1. Recorrido con Tratamiento Selectivo Número de Comparaciones (C) Vector de N elementos Búsqueda Secuencial C = N Búsqueda Binaria C = log2 N 2.2. Vector Ordenado 2.3. Concepto de Campo Clave 3. Búsqueda Secuencial 4. Búsqueda Secuencial con Centinela 5. Búsqueda Binaria o Dicotómica 6. Medida de la Complejidad de un Algoritmo 6.1. Valores del mejor, peor y caso medio 6.2. Comparación de las estrategias de búsqueda
123
Búsqueda Secuencial Peor Caso C = N
125 Búsqueda Secuencial 1. Búsqueda automática de información 2. Búsqueda en un vector 2.1. Recorrido con Tratamiento Selectivo Peor Caso Buscado es el último elemento del vector Tantas comparaciones como elementos tiene el vector C = N 2.2. Vector Ordenado 2.3. Concepto de Campo Clave 3. Búsqueda Secuencial 4. Búsqueda Secuencial con Centinela 5. Búsqueda Binaria o Dicotómica 6. Medida de la Complejidad de un Algoritmo 6.1. Valores del mejor, peor y caso medio 6.2. Comparación de las estrategias de búsqueda
124
Búsqueda Binaria Peor caso. Si N = 2C C = log2 N
126 Búsqueda Binaria 1. Búsqueda automática de información 2. Búsqueda en un vector Número de comparaciones Tamaño zona de búsqueda N 1 N / 2 2 N / 22 3 N / 23 ... C N / 2C 2.1. Recorrido con Tratamiento Selectivo Peor caso. Si N = 2C Después de C un elemento donde buscar C = log2 N 2.2. Vector Ordenado 2.3. Concepto de Campo Clave 3. Búsqueda Secuencial 4. Búsqueda Secuencial con Centinela 5. Búsqueda Binaria o Dicotómica 6. Medida de la Complejidad de un Algoritmo 6.1. Valores del mejor, peor y caso medio 6.2. Comparación de las estrategias de búsqueda
Presentaciones similares
© 2025 SlidePlayer.es Inc.
All rights reserved.