Algoritmos de Búsqueda
1.29k likes | 1.73k Vues
Algoritmos de Búsqueda. TEMA XIII: Algoritmos de Búsqueda y Ordenación Programación I. 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
Algoritmos de Búsqueda
E N D
Presentation Transcript
Algoritmos de Búsqueda TEMA XIII: Algoritmos de Búsqueda y Ordenación Programación I
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
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
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
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
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
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
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
11 Búsqueda Secuencial 1. Búsqueda automática de información 2. Búsqueda en un vector 2.1. Recorrido con Tratamiento Selectivo 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; encontrado := (buscado = V[i]); END; IF encontrado THEN pos := 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
12 Ejemplo valor encontrado 1. Búsqueda automática de información 2. Búsqueda en un vector 2.1. Recorrido con Tratamiento Selectivo i := 1; encontrado := (buscado = V[i]); WHILE (i <= n) AND (NOT encontrado) DO BEGIN i := i + 1; encontrado := (buscado = V[i]); END; IF encontrado THEN pos := 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
13 Ejemplo valor encontrado 1. Búsqueda automática de información 2. Búsqueda en un vector 2.1. Recorrido con Tratamiento Selectivo i := 1; encontrado := (buscado = V[i]); WHILE (i <= n) AND (NOT encontrado) DO BEGIN i := i + 1; encontrado := (buscado = V[i]); END; IF encontrado THEN pos := 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
14 Ejemplo valor encontrado 1. Búsqueda automática de información 2. Búsqueda en un vector 2.1. Recorrido con Tratamiento Selectivo i := 1; encontrado := (buscado = V[i]); WHILE (i <= n) AND (NOT encontrado) DO BEGIN i := i + 1; encontrado := (buscado = V[i]); END; IF encontrado THEN pos := 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
15 Ejemplo valor encontrado 1. Búsqueda automática de información 2. Búsqueda en un vector 2.1. Recorrido con Tratamiento Selectivo i := 1; encontrado := (buscado = V[i]); WHILE (i <= n) AND (NOT encontrado) DO BEGIN i := i + 1; encontrado := (buscado = V[i]); END; IF encontrado THEN pos := 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
16 Ejemplo valor encontrado 1. Búsqueda automática de información 2. Búsqueda en un vector 2.1. Recorrido con Tratamiento Selectivo i := 1; encontrado := (buscado = V[i]); WHILE (i <= n) AND (NOT encontrado) DO BEGIN i := i + 1; encontrado := (buscado = V[i]); END; IF encontrado THEN pos := 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
17 Ejemplo valor encontrado 1. Búsqueda automática de información 2. Búsqueda en un vector 2.1. Recorrido con Tratamiento Selectivo i := 1; encontrado := (buscado = V[i]); WHILE (i <= n) AND (NOT encontrado) DO BEGIN i := i + 1; encontrado := (buscado = V[i]); END; IF encontrado THEN pos := 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
18 Ejemplo valor no encontrado 1. Búsqueda automática de información 2. Búsqueda en un vector 2.1. Recorrido con Tratamiento Selectivo i := 1; encontrado := (buscado = V[i]); WHILE (i <= n) AND (NOT encontrado) DO BEGIN i := i + 1; encontrado := (buscado = V[i]); END; IF encontrado THEN pos := 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
19 Ejemplo valor no encontrado 1. Búsqueda automática de información 2. Búsqueda en un vector 2.1. Recorrido con Tratamiento Selectivo i := 1; encontrado := (buscado = V[i]); WHILE (i <= n) AND (NOT encontrado) DO BEGIN i := i + 1; encontrado := (buscado = V[i]); END; IF encontrado THEN pos := 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
20 Ejemplo valor no encontrado 1. Búsqueda automática de información 2. Búsqueda en un vector 2.1. Recorrido con Tratamiento Selectivo i := 1; encontrado := (buscado = V[i]); WHILE (i <= n) AND (NOT encontrado) DO BEGIN i := i + 1; encontrado := (buscado = V[i]); END; IF encontrado THEN pos := 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
21 Ejemplo valor no encontrado 1. Búsqueda automática de información 2. Búsqueda en un vector 2.1. Recorrido con Tratamiento Selectivo i := 1; encontrado := (buscado = V[i]); WHILE (i <= n) AND (NOT encontrado) DO BEGIN i := i + 1; encontrado := (buscado = V[i]); END; IF encontrado THEN pos := 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
22 Ejemplo valor no encontrado 1. Búsqueda automática de información 2. Búsqueda en un vector 2.1. Recorrido con Tratamiento Selectivo i := 1; encontrado := (buscado = V[i]); WHILE (i <= n) AND (NOT encontrado) DO BEGIN i := i + 1; encontrado := (buscado = V[i]); END; IF encontrado THEN pos := 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
23 Ejemplo valor no encontrado 1. Búsqueda automática de información 2. Búsqueda en un vector 2.1. Recorrido con Tratamiento Selectivo i := 1; encontrado := (buscado = V[i]); WHILE (i <= n) AND (NOT encontrado) DO BEGIN i := i + 1; encontrado := (buscado = V[i]); END; IF encontrado THEN pos := 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
24 Ejemplo valor no encontrado 1. Búsqueda automática de información 2. Búsqueda en un vector 2.1. Recorrido con Tratamiento Selectivo i := 1; encontrado := (buscado = V[i]); WHILE (i <= n) AND (NOT encontrado) DO BEGIN i := i + 1; encontrado := (buscado = V[i]); END; IF encontrado THEN pos := 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
25 Ejemplo valor no encontrado 1. Búsqueda automática de información 2. Búsqueda en un vector 2.1. Recorrido con Tratamiento Selectivo i := 1; encontrado := (buscado = V[i]); WHILE (i <= n) AND (NOT encontrado) DO BEGIN i := i + 1; encontrado := (buscado = V[i]); END; IF encontrado THEN pos := 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
26 Ejemplo valor no encontrado 1. Búsqueda automática de información 2. Búsqueda en un vector 2.1. Recorrido con Tratamiento Selectivo i := 1; encontrado := (buscado = V[i]); WHILE (i <= n) AND (NOT encontrado) DO BEGIN i := i + 1; encontrado := (buscado = V[i]); END; IF encontrado THEN pos := 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
27 Ejemplo valor no encontrado 1. Búsqueda automática de información 2. Búsqueda en un vector 2.1. Recorrido con Tratamiento Selectivo i := 1; encontrado := (buscado = V[i]); WHILE (i <= n) AND (NOT encontrado) DO BEGIN i := i + 1; encontrado := (buscado = V[i]); END; IF encontrado THEN pos := 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
28 Ejemplo valor no encontrado 1. Búsqueda automática de información 2. Búsqueda en un vector 2.1. Recorrido con Tratamiento Selectivo i := 1; encontrado := (buscado = V[i]); WHILE (i <= n) AND (NOT encontrado) DO BEGIN i := i + 1; encontrado := (buscado = V[i]); END; IF encontrado THEN pos := 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
29 Vector Ordenado 1. Búsqueda automática de información 2. Búsqueda en un vector 2.1. Recorrido con Tratamiento Selectivo 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]) ELSE encontrado := FALSE; 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
30 Ejemplo valor encontrado 1. Búsqueda automática de información 2. Búsqueda en un vector 2.1. Recorrido con Tratamiento Selectivo 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; 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
31 Ejemplo valor encontrado 1. Búsqueda automática de información 2. Búsqueda en un vector 2.1. Recorrido con Tratamiento Selectivo 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; 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
32 Ejemplo valor encontrado 1. Búsqueda automática de información 2. Búsqueda en un vector 2.1. Recorrido con Tratamiento Selectivo 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; 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
33 Ejemplo valor encontrado 1. Búsqueda automática de información 2. Búsqueda en un vector 2.1. Recorrido con Tratamiento Selectivo 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; 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
34 Ejemplo valor encontrado 1. Búsqueda automática de información 2. Búsqueda en un vector 2.1. Recorrido con Tratamiento Selectivo 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; 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
35 Ejemplo valor encontrado 1. Búsqueda automática de información 2. Búsqueda en un vector 2.1. Recorrido con Tratamiento Selectivo 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; 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
36 Ejemplo valor encontrado 1. Búsqueda automática de información 2. Búsqueda en un vector 2.1. Recorrido con Tratamiento Selectivo 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; 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
37 Ejemplo valor encontrado 1. Búsqueda automática de información 2. Búsqueda en un vector 2.1. Recorrido con Tratamiento Selectivo 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; 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
38 Ejemplo valor no encontrado 1. Búsqueda automática de información 2. Búsqueda en un vector 2.1. Recorrido con Tratamiento Selectivo 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; 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
39 Ejemplo valor no encontrado 1. Búsqueda automática de información 2. Búsqueda en un vector 2.1. Recorrido con Tratamiento Selectivo 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; 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
40 Ejemplo valor no encontrado 1. Búsqueda automática de información 2. Búsqueda en un vector 2.1. Recorrido con Tratamiento Selectivo 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; 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
41 Ejemplo valor no encontrado 1. Búsqueda automática de información 2. Búsqueda en un vector 2.1. Recorrido con Tratamiento Selectivo 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; 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
42 Ejemplo valor no encontrado 1. Búsqueda automática de información 2. Búsqueda en un vector 2.1. Recorrido con Tratamiento Selectivo 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; 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
43 Ejemplo valor no encontrado 1. Búsqueda automática de información 2. Búsqueda en un vector 2.1. Recorrido con Tratamiento Selectivo 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; 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
44 Ejemplo valor no encontrado 1. Búsqueda automática de información 2. Búsqueda en un vector 2.1. Recorrido con Tratamiento Selectivo 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; 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
45 Ejemplo valor no encontrado 1. Búsqueda automática de información 2. Búsqueda en un vector 2.1. Recorrido con Tratamiento Selectivo 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; 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 Ejemplo valor no encontrado 1. Búsqueda automática de información 2. Búsqueda en un vector 2.1. Recorrido con Tratamiento Selectivo 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; 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 Búsqueda Secuencialcon Centinela 1. Búsqueda automática de información 2. Búsqueda en un vector 2.1. Recorrido con Tratamiento Selectivo • Dos Comparaciones no Eficiente • Si buscado en el vector • Una comparación • Un elemento más en el vector • Centinela 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
48 Búsqueda Secuencialcon Centinela 1. Búsqueda automática de información 2. Búsqueda en un vector 2.1. Recorrido con Tratamiento Selectivo 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.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
49 Ejemplo valor encontrado 1. Búsqueda automática de información 2. Búsqueda en un vector 2.1. Recorrido con Tratamiento Selectivo i := 1; V[n+1] := buscado; WHILE (V[i] <> buscado) DO i := i +1; encontrado := (i < (n+1)); IF encontrado THEN pos := 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
50 Ejemplo valor encontrado 1. Búsqueda automática de información 2. Búsqueda en un vector 2.1. Recorrido con Tratamiento Selectivo i := 1; V[n+1] := buscado; WHILE (V[i] <> buscado) DO i := i +1; encontrado := (i < (n+1)); IF encontrado THEN pos := 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
51 Ejemplo valor encontrado 1. Búsqueda automática de información 2. Búsqueda en un vector 2.1. Recorrido con Tratamiento Selectivo i := 1; V[n+1] := buscado; WHILE (V[i] <> buscado) DO i := i +1; encontrado := (i < (n+1)); IF encontrado THEN pos := 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
52 Ejemplo valor encontrado 1. Búsqueda automática de información 2. Búsqueda en un vector 2.1. Recorrido con Tratamiento Selectivo i := 1; V[n+1] := buscado; WHILE (V[i] <> buscado) DO i := i +1; encontrado := (i < (n+1)); IF encontrado THEN pos := 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