Documentos de Académico
Documentos de Profesional
Documentos de Cultura
BSQUEDAS INTERNAS
INTRODUCCIN
1. OBJETIVO GENERAL
2. OBJETIVOS ESPECFICOS
3. BSQUEDA
5
5
5
6
7
7
8
8
9
10
11
11
12
13
13
14
15
16
16
17
18
19
20
22
5. BIBLIOGRAFA
22
INTRODUCCIN
1. OBJETIVO GENERAL
Investigar sobre las bsquedas internas que se pueden aplicar en las diferentes
estructuras de datos.
2. OBJETIVOS ESPECFICOS
3. BSQUEDA
3.1.
BSQUEDAS INTERNAS
3.1.1. Mtodos
Los mtodos de bsqueda interna ms importantes son:
-
Bsqueda secuencial
Bsqueda binaria
Bsqueda por transformacin de claves o hash
o Mdulo
o Cuadrado
o Plegamiento
o Truncamiento
3.1.1.1 Bsqueda secuencial:
Tambin se le conoce como bsqueda lineal. Es la forma ms simple de los
mtodos de bsqueda, consiste en revisar elemento tras elemento hasta encontrar
el dato buscado, o llegar al final del conjunto de datos disponibles. Este mtodo es
aplicable a tablas, arreglos, listas, archivos, etc.
3.1.1.1.1 Algoritmo:
5
1.- Empezar con el primer elemento de la lista e inicializar la variable que servir
de localizador.
2.- Efectuar la bsqueda mientras hay elementos en la lista y el valor de la clave
no se ha encontrado.
3.- Verificar si se encontr el elemento objeto de la bsqueda.
(1+ n)
Cmax =N
2
Ejemplo.
Si tenemos una estructura con los elementos 5, 8, 3, 2, 9, 5, 7, 0, 5, 1 y estamos
buscando el nmero 5, el resultado de la bsqueda nos mostrara las posiciones 0,
5 y 8 y el proceso terminara al llegar al nmero 1 que es el ltimo de la lista de
elementos.
Elementos
Posiciones
Posiciones donde
encontr el nmero 5
Un ejemplo claro para utilizar esta tcnica de bsqueda es cuando se tiene una
base de datos no muy grande en un negocio pequeo donde los registros ms
usados son llamados con frecuencia, es aqu donde esta tcnico es fuerte, ya que
se aplica a un patrn de bsqueda pequeo, sencillo y manejable; es decir como
si fuera una descripcin, es uno tras otro.
Ejemplo:
Nmero de cliente, nombre, apellido, direccin, corp.
3.1.2.2.1. Algoritmo:
1. Se compara la llave buscada con la llave localizada en el centro del arreglo.
2. Si la llave analizada corresponde a la buscada se finaliza la bsqueda, el
dato ha sido encontrado.
Si no
1. Si la llave buscada es menor que la analizada repetir proceso en mitad
superior, sino en la mitad inferior.
Cmin =1 C med=
( 1+ log 2 ( N ) )
2
Cmax =log2 N
Posiciones
Posiciones donde
encontr el nmero 5
10
Para encontrar la funcin hash no existe una regla que permita determinar cul
ser la funcin ms apropiada para generar un conjunto de claves que aseguren la
mxima uniformidad en la distribucin de las mismas. Algunas de las funciones
hash ms utilizadas son las siguientes:
-
Funcin cuadrada.
Funcin plegamiento.
Funcin truncamiento.
11
interviene la funcin hash sino tambin el mtodo utilizado para resolver las
colisiones. Por tanto se deben analizar todas las posibles combinaciones que se
pueden realizar.
Segn Lipschutz, la probabilidad de llevar a cabo una bsqueda con xito (S) y
otra sin xitos (Z) estn determinadas por las siguientes formulas:
1
1+
1+
(
(
[
[
(1 ) )]
( 1 ) )]
S ( )=
Z ( )=
1
M
N
Nota: Cabe aclarar que estas frmulas son vlidas solamente en casos de
funciones hash con el mtodo lineal de solucin de colisiones
3.1.1.3.2. Funcin Hash por Mdulo: divisin
La funcin hash por mdulo o divisin consiste en tomar el residuo de la divisin
de la clave entre el nmero de componentes del arreglo (total de elementos de
arreglo).
direccin=(clave total elementos)
Para lograr una mayor uniformidad en la distribucin de los elementos, se debe
buscar que el valor que se usa en el total de elementos sea un nmero primo o
divisible entre muy pocos nmeros ms cercano al tamao de la estructura.
Ejemplo.
Si tenemos un total de 100 elementos y dos claves que sean 7259 y 9359, las
direcciones generadas son las siguientes:
direccin=( 7259 100 )=59
12
13
H 2 ( K ) =digitoCentrales ( K 22 ) +1=91
Como el rango de claves es de 1 a 100 se toman dos dgitos centrales.
d 1 ,d 2 d n
14
Como el rango de claves es de 1 a 100 se toman dos dgitos para las particiones y
para la direccin.
d 1 ,d 2 d n
15
Reasignacin
Arreglos anidados
Encadenamiento.
3.1.1.3.6.1. Reasignacin
Existen varios mtodos que trabajan bajo el principio de comparacin y
reasignacin de elementos. A continuacin se presentan tres de ellos
-
Prueba lineal
Prueba cuadrtica
Doble direccin hash
16
17
Esta variacin permite una mejor distribucin de las claves que colisionan.
Ejemplo.
Sea V un arreglo unidimensional de 10 elementos. Las claves 25, 43, 56, 35, 54,
13, 80 y 104 fueron asignados segn la funcin hash:
H ( K )=( K mod 10 ) +1
El dato a buscar es igual a 35. Al aplicar la funcin hash a la clave 35, se obtiene
una direccin (D) igual a 6; sin embargo, en esa direccin no se encuentra el valor
D+(ii) ,
buscado. Se calcula posteriormente el DX, como la suma de
onteniendose de esta forma la direccin 7, el algoritmo de bsqueda concluye
cuando se encuentra el valor desea en la dcima posicin.
18
Figura 4: Solucin de colisiones por la prueba cuadrtica. A) arreglo. B) tabla con H(K)
19
Figura 5: Solucin de colisiones por doble direccin hash . A) arreglo. B) tabla con H(K), H(D),
H(D), H(D)
depende del espacio que haya asignado a stos, lo cual conduce a un nuevo
problema difcil de solucionar: elegir un tamao adecuado de un arreglo que
permita un equilibrio entre el costo de memoria y el nmero de valores (que
colisionan) que pudieran almacenar.
Ejemplo.
Sea V un arreglo unidimensional de 10 elementos. Las claves 25, 43, 56, 35, 54,
13, 80 y 104 fueron asignados segn la funcin hash:
H ( K )=( K mod 10 ) +1
Figura 6: Solucin de colisiones con arreglos anidados. A) arreglo. B) tabla con H(K).
3.1.1.3.6.3. Encadenamiento
21
22
4. CONCLUSIONES
5. BIBLIOGRAFA
23