You are on page 1of 10

ALGORITMOS DE BUSQUEDA

 BUSQUEDA.
La operación de búsqueda nos permite encontrar
datos que están previamente almacenados en un
arreglo (búsqueda interna) o un archivo
(búsqueda externa). La operación puede ser un
éxito, si se localiza el elemento buscado o un
fracaso en otros casos.
La búsqueda se puede realizar sobre un conjunto de
datos ordenados, lo cual hace la tarea más fácil y
consume menos tiempo; o se puede realizar sobre
elementos desordenados, tarea más laboriosa y
de mayor insumo de tiempo.
ALGORITMOS DE BUSQUEDA
IMPORTANCIA DE LA BUSQUEDA

Uno de los usos más frecuentes de los computadores es la


búsqueda de información en estructuras de datos. Al ser
ésta una de las operaciones más frecuentes tiene que ser
la más rápida posible.
La eficiencia de un algoritmo de búsqueda depende de si la
estructura de datos sobre la que hacemos la búsqueda
está o no ordenada. Ej: palabras de un diccionario,
Archivos en un directorio, catálogo de una biblioteca, Guía
Telefónica, etc.
Muchos algoritmos de búsqueda invocan internamente un
método de ordenación y el coste del método de
ordenación utilizado determina el coste global.
ALGORITMOS DE BUSQUEDA
 METODOS DE BUSQUEDA
Los métodos más usuales para la búsqueda
son:
 Búsqueda secuencial o lineal
 Búsqueda binaria
 Búsqueda Indexada
 Búsqueda por transformación de claves
(hashing)
BUSQUEDA SECUENCIAL O
LINEAL
La búsqueda secuencial es la técnica más simple para
buscar en una lista de datos. Este método consiste en
recorrer el arreglo o archivo en forma secuencial y
comparar cada elemento con el valor buscado, hasta que
éste se encuentre o finalice el arreglo.
Normalmente cuando la función de búsqueda termina con
éxito, es decir encontró el dato buscado, interesa conocer
en que posición fue encontrado el dato buscado. Esta idea
se puede generalizar en todos los métodos de búsqueda.
La búsqueda secuencial no requiere ningún requisito para el
arreglo, y por lo tanto no necesita estar ordenado.
BUSQUEDA SECUENCIAL O
LINEAL
entero BuscarLineal(A,n,e)
Inicio
i  1
pos  -1
encontrado  falso
Mientras (i <=n) And (No encontrado) Hacer
Inicio
si (A[i]= e)
entonces
Inicio
encontrado  cierto
pos  i
Fin
i++
Fin
return pos
Fin
BUSQUEDA SECUENCIAL O
LINEAL
 ANALISIS
 MEJOR CASO. El elemento buscado está en la
primera posición
 Ώ(1)
 PEOR CASO. El elemento buscado esta en la
última posición o no se encuentra
 O(n)
 CASO MEDIO. Número medio de comparaciones
(1+n)/2
 O(n)
BUSQUEDA BINARIA
Si la estructura de datos sobre la que se va realizar una
búsqueda está ordenada, lo mas eficiente es realizar una
búsqueda binaria o dicotómica.
Se sitúa la lectura en el centro de la lista y se comprueba si
la clave coincide con el valor del elemento central. Si no
se encuentra el valor de la clave, se sigue la búsqueda en
la mitad inferior o superior del elemento central de la lista.
En general, si los datos de la lista están ordenados se
puede utilizar esa información para acortar el tiempo de
búsqueda.
BUSQUEDA BINARIA
BUSQUEDA BINARIA
entero BusquedaBin(A,p,r,e)
Inicio
si(p <= r){existen elementos que examinar}
entonces
Inicio
mitad  (p+r)/2 {elemento central}
si (A[mitad]=e)
entonces
return mitad {el buscado esta en mitad}
caso contrario
si (A[mitad]> e) {podría encontrarse}
entonces {en la parte izq}
return BusquedaBin(A,p,mitad-1,e)
caso contrario{podria estar en la der}
return BusquedaBin(A,mitad+1,r,e)
Fin
caso contrario
return -1
Fin
BUSQUEDA BINARIA
ANALISIS
1 si n = 0
t(n) =
t(n/2) + c si n >1

 MEJOR CASO. Cuando el elemento buscado esta en la mitad


 Ω(1)
 PEOR CASO. Cuando el elemento buscado no esta en el arreglo
 O(log n)
 CASO MEDIO.
 (1+log n)/2 = O(log n)

You might also like