Anda di halaman 1dari 23

TRABAJO INVESTIGATIVO

BSQUEDAS INTERNAS

CATALINA MARA HERNNDEZ RUIZ


20112020083
KAREN VANESSA ANGULO SOGAMOSO
20112020055

UNIVERSIDAD DISTRITAL FRANCISCO JOS DE CALDAS


INGENIERA DE SISTEMAS
CIENCIAS DE LA COMPUTACIN II
BOGOT, 19 DE FEBRERO DE 2014
TABLA DE CONTENIDO
Pg.

INTRODUCCIN

1. OBJETIVO GENERAL

2. OBJETIVOS ESPECFICOS

3. BSQUEDA

3.1. BSQUEDAS INTERNAS


3.1.1. MTODOS
3.1.1.1 BSQUEDA SECUENCIAL
3.1.1.1.1 ALGORITMO
3.1.1.1.2. ANLISIS DE LA BSQUEDA SECUENCIAL
3.1.1.1.3. PRINCIPALES APLICACIONES
3.1.1.2. BSQUEDA BINARIA
3.1.1.2.1. ALGORITMO
3.1.1.2.2. ANLISIS DE LA BSQUEDA BINARIA
3.1.1.2.3. PRINCIPALES APLICACIONES
3.1.1.3. BSQUEDA POR TRANSFORMACIN DE
CLAVES
3.1.1.3.1. ANLISIS DEL MTODO POR
TRANSFORMACIN DE CLAVES
3.1.1.3.2. FUNCIN HASH POR MDULO: DIVISIN
3.1.1.3.3. FUNCIN HASH CUADRADO
3.1.1.3.4. FUNCIN HASH POR PLEGAMIENTO
3.1.1.3.5. FUNCIN HASH POR TRUNCAMIENTO
3.1.1.3.6. SOLUCIN DE COLISIONES
3.1.1.3.6.1. REASIGNACIN
3.1.1.3.6.1.1. PRUEBA LINEAL
3.1.1.3.6.1.2. PRUEBA CUADRTICA
3.1.1.3.6.1.3. DOBLE DIRECCIN HASH
3.1.1.3.6.2. ARREGLOS ANIDADOS
3.1.1.3.6.3. ENCADENAMIENTO
4. CONCLUSIONES

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

En las diferentes estructuras de datos es necesario acceder y modificar la


informacin, por lo cual cuentan con diversas operaciones diseadas para ello.
Uno de estos procesos son las bsquedas, que permiten encontrar datos, claves,
registros almacenados.
El siguiente trabajo aborda esta temtica, profundizando en uno de los tipos de
bsquedas, las internas, sus mtodos, caractersticas y condiciones necesarias
para su realizacin y aplicacin.

1. OBJETIVO GENERAL

Investigar sobre las bsquedas internas que se pueden aplicar en las diferentes
estructuras de datos.

2. OBJETIVOS ESPECFICOS

Comprender las diferencias bsicas entre los mtodos de bsquedas


internas, sus caractersticas y condiciones de aplicacin.
Entender los diferentes procedimientos que hacen parte de cada operacin
de los mtodos de bsquedas internas.
Realizar algunos ejemplos que evidencien la forma que se realizan las
bsquedas internas, comprendiendo sus ventajas y desventajas en la
aplicacin.

3. BSQUEDA

Es una operacin que permite recuperar informacin previamente almacenada, su


resultado puede ser de xito al encontrar el dato o de fracaso si no. Se puede
realzar sobre elementos ordenados o desordenados.
Las bsquedas se pueden realizar a nivel interno o externo

3.1.

BSQUEDAS INTERNAS

Son aquellas que se realizan sobre elementos que se encuentran en memoria


principal de la mquina. Es comn en estructuras de datos estticas como
arreglos, y dinmicas como rboles y listas.

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.

Figura 1: Diagrama de flujo Mtodo secuencial

3.1.1.1.2. Anlisis de la Bsqueda Secuencial:


La situacin ptima es que la clave buscada sea la primera en ser examinada. El
peor caso es cuando la informacin de todas las claves es comparada con la

buscada, es decir el fin de la estructura de datos. Mientras que el caso promedio


es n/2 comparaciones.
Este mtodo de bsqueda es muy lento, pero si los datos no estn en orden es el
nico mtodo que puede emplearse para hacer las bsquedas. Si los valores de la
llave no son nicos, para encontrar todos los registros con una llave particular, se
requiere buscar en toda la lista.
Adems, a continuacin se presenta para los distintos valores de N, los numero
mnimo, mediano y mximo de comparaciones que se requieren para buscar
secuencialmente un elemento en un arreglo o lista ligada
Cmin =1 C med=

(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

3.1.1.1.3. Principales Aplicaciones:


Los archivos secuenciales son tpicamente utilizados en aplicaciones de proceso
de lotes Y son ptimos para dichas aplicaciones si se procesan todos los registros.
La organizacin secuencias de archivos es la nica que es fcil de usar tanto en
disco como en cinta.

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. Bsqueda Binaria


Consiste en dividir el intervalo de bsqueda en dos partes, comparando el
elemento buscado con el que ocupa la posicin central en el arreglo. Para el caso
de que no fueran iguales se redefinen los extremos del intervalo, segn el
elemento central sea mayor o menor que el elemento buscado, disminuyendo de
esta forma el espacio de bsqueda. El proceso concluye cuando el elemento es
encontrado, o cuando el intervalo de bsqueda se anula, es vaco.
Este mtodo funciona exclusivamente para arreglos ordenados, no se pude utilizar
con listas, porque no podramos retroceder para encontrar intervalos de bsqueda,
ni con arreglos desordenados.
Con cada iteracin del mtodo el espacio de bsqueda se reduce a la mitad, lo
que quiere decir que el nmero de comparaciones se reduce notablemente.

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.

2. El proceso de partir por la mitad el arreglo se repite hasta encontrar el


registro o hasta que el tamao de la lista restante sea cero, lo cual implica
que el valor de la llave buscada no est en la lista.
3.1.1.2.2. Anlisis de la Bsqueda Binaria
Para establecer la complejidad de la bsqueda binaria es necesario establecer los
casos ms favorables y desfavorables que se pudiesen presentar en el proceso de
bsqueda.
El primero sucede cuando el elemento buscado se encuentra en el centro,
en dicho caso solo se har una comparacin.
El segundo sucede cuando elemento no se encuentra en el arreglo;
entonces se harn aproximadamente log 2 (n) comparaciones, ya que con
cada comparacin el nmero de elementos en los cuales se debe buscar se
reduce en un factor de 2
El esfuerzo promedio es de log 2 (n) .
Sabiendo esto, en las siguientes formulas se determinan los nmeros mnimo,
mediano y mximo de comparaciones que se deben realizar cuando se utiliza este
tipo de bsqueda.

Cmin =1 C med=

( 1+ log 2 ( N ) )
2

Cmax =log2 N

De esta forma, se evidencia que mtodo de bsqueda binaria es ms eficiente que


el mtodo de bsqueda secuencial. Adems, la diferencia se hace significativa
conforme ms grande sea el tamao del arreglo.
Cabe recalcar que el tiempo de bsqueda en este tipo de algoritmo es
proporcional a su nmero de componentes. Es decir a mayor nmero de
elementos se deben realizar mayor nmero de comparaciones.
Algunas de sus ventajas son:
Es un mtodo eficiente siempre que el vector est ordenado. En la prctica,
esto suele suceder, pero no siempre. Por esta razn la bsqueda binaria
exige una ordenacin previa del archivo.

Proporciona un medio para reducir el tiempo requerido para buscar en una


lista. Este mtodo, sin embargo, exige que los datos estn ordenados.
Es ms rpido por su recursividad, su mayor ventaja es con los archivos
extensos.
El cdigo del procedimiento de esta bsqueda es corto en comparacin con
las dems tcnicas de bsqueda.
En esencia, con una sola comparacin eliminamos la mitad de la tabla; este
es el mtodo ms eficiente de buscar en una lista ordenada sin emplear
tablas o ndices adicionales.
Ejemplo.
Si tenemos una estructura ordenada 0, 1, 2, 3, 5, 5, 5, 7, 8, 9 y estamos buscando
el nmero 5, el resultado de la bsqueda nos mostrara la posicione 4 y el
proceso terminara ya que el elemento buscado no es diferente al que est en la
posicin central.
Elementos

Posiciones

Posiciones donde
encontr el nmero 5

3.1.1.2.3. Principales aplicaciones:


Es comn en la bsqueda para arboles binarios ordenados
Se distinguen 2 casos triviales con solucin directa: rbol vaco (elemento no
encontrado) o raz del rbol. El segundo se da cuando es necesario aplicar
bsqueda binaria para encontrar el dato, partiendo el rbol en subrboles hasta
encontrar la clave.

3.1.1.3. Bsqueda por transformacin de claves:


Tambin conocida hash, permite aumentar la velocidad de bsqueda sin
necesidad de tener los elementos ordenados. Cuenta con la ventaja de que el
tiempo de bsqueda es independiente del nmero de componentes del arreglo.

10

El mtodo de transformacin de claves permite localizar el dato en forma directa,


adems trabaja utilizando una funcin que convierte una clave dada en direccin
(ndice) dentro del arreglo.
Direccin H (clave)
La funcin hash (H) aplicada a la clave genera un ndice del arreglo que permite
acceder directamente al elemento. El caso ms trivial se presenta cuando las
claves son nmeros enteros consecutivos.
La funcin hash permitir transformar la clave para obtener una direccin
apropiada. La asignacin deber ser la ms uniforme posible. Es decir, debe
generar posiciones diferentes dadas dos claves tambin diferentes.
Si no se generan posiciones diferentes dadas dos claves tambin diferentes, hay
una colisin, que se define como la asignacin de una misma direccin a dos o
ms claves distintas.
Para trabajar con este mtodo de bsqueda se debe seleccionar previamente:
-

Una funcin hash que sea fcil de calcular y que distribuya


uniformemente las claves.
Un mtodo para resolver las colisiones. Que generara posiciones
alternativas si esto se presenta.

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 mdulo (por divisin).

Funcin cuadrada.

Funcin plegamiento.

Funcin truncamiento.

3.1.1.3.1. Anlisis del mtodo por transformacin de claves


Para el anlisis de este mtodo es necesario realizar varios clculos
probabilsticos. La dificultad del anlisis se debe a que principalmente no slo

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= nmero de elementos del arreglo


N= tamao del arreglo
= factor de ocupacin de un arreglo, definido como

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

direccin=( 9359 100 )=59


Estos dos casos generan una colisin, ya que los dos nmeros no se pueden
asignar dentro de la misma direccin en la estructura, para evitar la colisin, se
cambia el valor de 100 por el numero primo ms cercano a l, en este caso sera
un 97, lo que generara las siguientes direcciones:
direccin=( 7259 97 )=81
direccin=( 9359 97 )=47
3.1.1.3.3. Funcin Hash Cuadrado
La funcin hash cuadrado consiste en elevar al cuadrado la clave y tomar los
dgitos centrales como direccin. El nmero de dgitos que se debe considerar se
encuentra determinado por el rango del ndice.
Se define la frmula para la funcin hash as:
H ( K )=dig itoCentrales ( K 2 )+ 1
K: la clave del dato a buscar
La suma de la unidad a los dgitos centrales es til para obtener un valor
comprendido entre 1 y N.
Ejemplo.
Si tenemos un total de 100 elementos y dos claves que sean 7259 y 9359, las
direcciones generadas son las siguientes:

( K 21 )=52 693 081


( K 22 )=87 590 881
Entonces,
H 1 ( K ) =digitoCentrales ( K 21) +1=94

13

H 2 ( K ) =digitoCentrales ( K 22 ) +1=91
Como el rango de claves es de 1 a 100 se toman dos dgitos centrales.

3.1.1.3.4. Funcin Hash por Plegamiento


La funcin hash por Plegamiento consiste en dividir la clave en partes, tomando
igual nmero de dgitos aunque la ltima puede tener menos, y operar entre ellas,
asignando como direccin los numero menos significativos.
Las operaciones entre las partes se pueden realizar por medio de sumas o
multiplicaciones.
La funcin hash por plegamiento se define de la siguiente forma:
H ( K )=digmensig ( ( d1 d i ) + ( d i +1 d j ) ++(d 1 d n ) ) +1
K: la clave del dato a buscar
K est formada por los dgitos

d 1 ,d 2 d n

Digmensig: dgitos menos significativos.


Se nota que el operador que aparece en la frmula es operando las partes de la
clave es la suma, pero tambin podra ser la multiplicacin.
La suma de la unidad a los dgitos menos significativos es para obtener un valor
comprendido entre 1 y N.
Ejemplo.
Si tenemos un total de 100 elementos y dos claves que sean 7259 y 9359, las
direcciones generadas son las siguientes:
H 1 ( K ) =digmensig (72+59 )+1=digmensig ( 131 )+1=32
H 2 ( K ) =digmensig ( 93+59 ) +1=digmensig ( 152 ) +1=53

14

Como el rango de claves es de 1 a 100 se toman dos dgitos para las particiones y
para la direccin.

3.1.1.3.5. Funcin Hash por Truncamiento


La funcin hash por truncamiento consiste en tomar algunos dgitos de la clave y
formar con ellos una direccin.
Este es uno de los mtodos ms sencillos, pero de igual forma es uno de los que
menos ofrece uniformidad en la distribucin de claves.
La funcin hash por truncamiento se define de la siguiente forma:
H ( K )=elegirDigitos ( ( d 1 ,d 2 d n ) ) +1
K: la clave del dato a buscar
K est formada por los dgitos

d 1 ,d 2 d n

La suma de la unidad a los dgitos seleccionados es indispensable para obtener


valores entre 1 y N.
La eleccin de los dgitos es arbitraria, podran tomarse los de las posiciones
pares o impares para con ellos generar la direccin donde se almacenara la clave,
uniendo los dgitos de izquierda a derecha o de derecha a izquierda.
Ejemplo.
Si tenemos un total de 100 elementos y dos claves que sean 7259 y 9359, las
direcciones generadas son las siguientes:
H 1 ( K ) =elegirdigitos ( 7259 ) +1=75+1=76
H 2 ( K ) =elegirdigitos ( 9359 ) +1=95+1=96

15

Para este caso se tomaron los dgitos impares y se unieron de izquierda a


derecha.

3.1.1.3.6. Solucin de colisiones


Un mtodo para la solucin de colisiones es tan importante como la funcin hash,
este mtodo debe entrar en operacin cuando la funcin hash asigna la misma
direccin a dos o ms claves diferentes.
La manera ms natural de resolver el problema de las colisiones es reservar una
casilla por claves; es decir, aquellas que se correspondan una a una con las
posiciones del arreglo. Esta solucin tiene un alto costo de memoria. Por lo que se
busca un equilibrio entre el uso de memoria y el tiempo de bsqueda.
Por tanto se presentan algunos mtodos para la solucin de colisiones y se
clasifican as:
-

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

3.1.1.3.6.1.1. Prueba lineal


El mtodo de prueba lineal consiste en que una vez se ha detectado la colisin,
se recorre el arreglo secuencialmente a partir del punto de la colisin, buscando al
elemento.
El proceso de bsqueda concluye cuando el elemento es hallado, o
cuando se encuentra una posicin vaca.

16

El arreglo se trata como a una estructura circular: el siguiente elemento despus


del ltimo es el primero.
La principal desventaja de este mtodo es que puede haber un fuerte
agrupamiento alrededor de ciertas claves, mientras que otras del arreglo podran
permanecer vacas. Se pierden las ventajas del mtodo hash.
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
que la direccin (D) es igual a 6. Sin embargo, en esta posicin no se encuentra el
elemento buscado por lo que se empieza a recorrer secuencialmente el arreglo a
partir de la posicin (DX) igual a 7. En este caso la bsqueda concluye cuando se
encuentra al valor buscado en la posicin 8.

Figura 2: Solucin de colisiones por la prueba lineal.

3.1.1.3.6.1.2. Prueba cuadrtica

17

El mtodo de prueba cuadrtica es similar al de prueba lineal, la diferencia radica


en que las direcciones alternativas se generan como

D+1, D+4, D+ 9 D+i2 .

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.

Figura 3: Solucin de colisiones por la prueba cuadrtica K = 35

18

Figura 4: Solucin de colisiones por la prueba cuadrtica. A) arreglo. B) tabla con H(K)

3.1.1.3.6.1.3. Doble Direccin hash


El mtodo de doble direccin hash consiste en que una vez que se detecta la
colisin, se genera otra direccin aplicando la misma funcin hash a la direccin
previamente obtenida. El proceso se finaliza cuando el elemento es hallado o
cuando hay una posicin vaca.
La funcin hash que se aplica no necesariamente tiene que ser sobre la misma
que originalmente se aplic a la clave; podra ser sobre cualquier otra.
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

19

Adems se define una funcin H para calcular direcciones alternativas en caso de


haber colisin.
H ' ( K )=(( D+ 1)mod 10 ) +1
Al aplicar la funcin hash (H) a la clave 13, se obtuvo una direccin (D) igual a 4,
como en esta posicin no se encuentra el numero buscado, se aplica
reiteradamente H, generando direcciones hasta hallar el valor deseado.

Figura 5: Solucin de colisiones por doble direccin hash . A) arreglo. B) tabla con H(K), H(D),
H(D), H(D)

3.1.1.3.6.2. Arreglos anidados


El mtodo de arreglos anidados consiste en que cada elemento del arreglo tengo
otro arreglo, en el cual se almacenen elementos que colisionan. Si bien la solucin
parece ser sencilla, es claro que resulta ser ineficiente. Al trabajar con arreglos se
20

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

El mtodo de encadenamiento consiste en que cada elemento del arreglo tenga


un apuntador a una lista ligada, la cual se ira generando y almacenar los valores
que colisionan.
Este mtodo es ms eficiente debido a que las listas son estructuras dinmicas.
Cualquiera que sea el nmero de colisiones que se presenten, se podrn resolver
sin inconvenientes.
La desventaja de este mtodo es que se ocupa espacio adicional en la tabla y
exige el manejo de listas ligadas. Adems, si las listas son demasiado grandes se
pierde el acceso directo al mtodo hash.
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
Una vez se detecta una colisin en cierta posicin del arreglo, se debe recorrer la
lista asociada a ella hasta encontrar el elemento buscado o llegar a su final.

Figura 7: Solucin de colisiones por encadenamiento. A) arreglo. B) tabla con H(K).

22

4. CONCLUSIONES

Se entendieron aspectos bsicos de los diferentes mtodos de las


bsquedas internas, como sus condiciones necesarias para su aplicacin,
ya sea que la estructura esta ordenada o que tenga que conocerse el
tamao de ella o la cantidad total de registros.
Se explicaron los procesos para llevar a cabo cada una de los procesos de
los diferentes mtodos de bsquedas internas, es decir se conocieron paso
a paso sus algoritmos.
Se comprob mediante ejemplos la teora expuesta, de tal manera que el
ejercicio prctico evidencio que cada mtodo de bsquedas internas
requiere de ciertas condiciones, por lo cual son especficos de cierto tipo de
circunstancias especficas, dependiendo de la necesidad y del caso que se
presente.

5. BIBLIOGRAFA

SEDGEWICK, Robert. Algoritmos en C++. Ediciones Addison Wesley /


Daz de Santos, 1995.
CAIR, Osvaldo. Estructura de Datos, tercera Edicin. Mc Graw Hill.

23