Algoritmos de Busqueda

13
Análisis de Algoritmos

Transcript of Algoritmos de Busqueda

Análisis de Algoritmos

Búsqueda Secuencial

• La búsqueda lineal es como una búsqueda de un patrón de archivos.

• Dentro del vector, se busca desde el primer elemento hasta el último.

• Compara cada elemento con el valor deseado hasta que se encuentre.

• No requiere que el vector esté ordenado.

• El mejor caso es el registro a buscar sea el primero en ser examinado

• El peor caso, cuando las claves de los registros son comparados con un K.

Búsqueda binaria

• En la búsqueda binaria el vector debe estar ordenado.

• Se examina el elemento central de la lista y se compara con el elemento que se está buscando. Se reduce sucesivamente la operación eliminando repetidas veces la mitad de la lista restante.

• Debe estar ordenada de acuerdo al valor de la clave.

• Se puede aplicar en listas lineales como en Arboles Binarios de Búsqueda.

• El esfuerzo máximo para este algoritmo es log2n

• El mínimo de esfuerzo es 1• El promedio 1/2log2n• El mejor caso es cuando el elemento central

es igual al elemento que se está búsqueda

Hashing

• Los elementos del campo clave no es necesario que este ordenado de acuerdo a los valores del campo clave.

• H=función hash• K=clave• D=índice• T=vector

Método de transformación de claves

Truncamiento

• Ignora parte de la clave y utiliza la parte restante directamente como índice (considerando campos no numéricos y sus códigos numéricos)

Plegamiento

• Consiste en la partición de la clave en diferentes partes y la combinación de la partes

Aritmética Modular

• Este método convierte la clave a un entero, se divide por el tamaño del rango del índice y toma el resto como resultado. La función MOD (modulo o resto de la división entera)

Mitad del Cuadrado

• Este método consiste en calcular el cuadrado de la clave X. La función de conversión se define como:

• H(x)=c

• Donde C se obtiene eliminando dígitos a ambos lados de x2