Documentos de Académico
Documentos de Profesional
Documentos de Cultura
FACULTAD DE INGENIERÍA
Integrantes:
CIENCIAS DE LA COMPUTACIÓN II - Gr 83
TALLER #2
BOGOTÁ D.C
2021
BÚSQUEDA
❖ Secuencial o lineal
❖ Binaria
❖ Por transformación de claves
❖ Árboles de búsqueda
_____________________________________________
¹ Osvaldo Cairó, Silvia Guardati. Estructuras de datos, tercera edición, pág 392.
² Torres, Alejandra., (2017). Método de Búsqueda, pág 3.
³ Issuu, Métodos de Búsqueda, https://issuu.com/carlosrodriguez90/docs/m_todos_de_b_squeda_97-2003, consultado el 6 de
mayo de 2022.
⁴ EsicMarket, Estudio comparativo sobre la búsqueda externa de información en bienes y servicios,
https://revistasinvestigacion.esic.edu/esicmarket/index.php/esicm/article/view/66/146, consultado el 6 de mayo de 2022.
BÚSQUEDA SECUENCIAL
Arreglos
Arreglos Desordenados
Son dos los posibles resultados que se pueden obtener al realizar la búsqueda: la
posición en la que encontró el elemento, o un mensaje de fracaso si el elemento no
se halla en el arreglo. Si hubiera dos o más ocurrencias del mismo valor, se
encuentra la primera de ellas. Sin embargo, es posible modificar el algoritmo para
obtener todas las ocurrencias del dato buscado.
__________________________________________
⁵ Osvaldo Cairó, Silvia Guardati. Estructuras de datos, tercera edición, pág 393.
6
Issuu, Métodos de Búsqueda, https://issuu.com/carlosrodriguez90/docs/m_todos_de_b_squeda_97-2003, consultado el 6 de
mayo de 2022
7
Métodos de búsqueda secuencial y binaria, https://uneginginf05.es.tl/M-e2-todo-de-Busqueda-Secuencial-y-Binaria.htm,
consultado el 8 de mayo de 2022.
8
Teddy Alfaro Olave. Tipos de Datos Estructurados (Universidad Técnica Federico Santa María), pág 1.
Arreglos Ordenados
Listas enlazadas
__________________________________________
9
Carlos Delgado Kloos, Jesús Arias Fisteus, Carlos Alario Hoyos, Julio Villena Román. Listas enlazadas, pág 9.
Un profesor guarda los datos de sus estudiantes en tres vectores: código, nombre y
nota, como se muestra en la figura 1. Se requiere un algoritmo para consultar la
nota de un estudiante a partir de su código.10
Haciendo uso del análisis secuencial se crea una función llamada busquedalineal() y
pasándole como parámetros el vector código, el tamaño del mismo y el código del
estudiante, se puede conocer en qué posición de los vectores se encuentran los
datos del estudiante. El algoritmo se presenta en la figura 2, en éste se supone la
existencia de un procedimiento para llenar los datos en los vectores.
__________________________________________
10
Hemeroteca UNAD, Búsqueda y Ordenamiento,
https://hemeroteca.unad.edu.co/index.php/book/article/download/2580/2692/, consultado el 6 de mayo de 2022.
Figura 2. Diagrama de flujo del algoritmo de buscar estudiante
BÚSQUEDA BINARIA
_____________________________________________
11
Osvaldo Cairó, Silvia Guardati. Estructuras de datos, tercera edición, pág 397.
● Esta aplicación representa mucha dificultad para la programación de sus
datos y además, es muy rápida su ejecución. Esta técnica requiere que los
elementos de la lista, sobre la que va a actuar, estén clasificados, ya sea en
forma ascendente o descendente, cada elemento de la lista puede tener
varios campos.
Importante:
_____________________________________________
12
Torres, Alejandra., (2017). Método de Búsqueda, pág 4.
La lotería de Mundo Rico registra los números de los billetes vendidos y el lugar
dónde se vendió, en orden ascendente. En el momento de jugar la lotería, al
conocer el número ganador se requiere conocer inmediatamente en qué lugar fue
vendido. Diseñar un algoritmo para realizar esta consulta. 13
Los datos se guardan en una estructura conformada por dos vectores como se
muestra en la figura 3. Dado que los números están ordenados se puede aplicar el
algoritmo de búsqueda binaria, éste encontrará el número mucho más rápido que si
se utilizara la búsqueda lineal.
_____________________________________________
13
Hemeroteca UNAD, Búsqueda y Ordenamiento,
https://hemeroteca.unad.edu.co/index.php/book/article/download/2580/2692/, consultado el 6 de mayo de 2022.
Las operaciones a realizar en este ejercicio son: leer el número ganador, pasarlo a
la función de búsqueda y mostrar los resultados. La función proporciona la posición
dónde se encuentra el dato o en su defecto informará que éste no se encuentra, lo
que se interpreta como número no vendido. La lectura de datos y la impresión de
resultados son acciones que debe realizar el algoritmo principal. Ver figura 5.
En la línea 3 del algoritmo se invoca un procedimiento para llenar los datos, lo que
garantiza que los vectores contienen datos, no obstante la implementación de éste
no se incluye. En la línea 5 se invoca a la función busquedabinaria() enviando como
parámetros el vector que contiene los números, el tamaño del vector y el número
ganador.
_____________________________________________
14
Osvaldo Cairó, Silvia Guardati. Estructuras de datos, tercera edición, pág 402.
● La ejecución del grupo de búsquedas por transformación de llaves (Hash),
que aumenta la eficiencia, en cuanto al tiempo de ejecución, ya que accede a
los registros por lo general más rápidamente, pero va a depender de su
implementación. Esta técnica permite que el acceso a los datos sea por una
llave que indica directamente la posición donde están archivados los datos
que se desea ubicar. Trabaja con una función que transforma la llave o dato
clave en una dirección (índice) dentro de la estructura y que en ocasiones
puede generar una colisión, que se define como una misma dirección para
dos o más claves distintas.15
H (K 1 )=(7259mod 100)+1=60
H ( K 2 )=(9359 mod 100)+1=60
_____________________________________________
15
Torres, Alejandra., (2017). Método de Búsqueda, pág 4.
Donde H(K1) es igual a H(K2) y K1 es diferente a K2, es una colisión. Se
aplica N igual a un valor primo en lugar de utilizar N = 100.
Ejemplo.
2
123 =15129→51
2
136 =18496→84
2
730 =532900 →29
2
301 =90601→06
2
625 =390625→06
13000000→130+000+00=130
12345678→123+456 +78=657
71140205→711+402+05=1118→118
13602499→136+024 +99=259
25000009→250+000+ 09=259
Sea K la clave del dato a buscar. K está formada por los dígitos d 1, d2, …, dn.
La función hash por truncamiento se representa con la siguiente fórmula:
5700931→703
3498610→481
0056241→064
9134720→142
5174829→142
Falta la explicación de las funciones hash y los ejemplos por dos
autores?????
➢ Reasignación
■ Prueba Lineal
Consiste en que una vez que se detecta la colisión, se recorre
el arreglo secuencialmente a partir del punto de colisión,
buscando al elemento. El proceso de búsqueda concluye
cuando el elemento es hallado, o cuando se encuentra una
posición vacía. El arreglo se trata como una estructura circular:
el siguiente elemento después del último es el primero.
■ Prueba Cuadrática
El método de la prueba cuadrática es similar al anterior. La
diferencia consiste en que en el de la prueba cuadrática las
direcciones alternativas se generan como D + 1, D + 4, D + 9,
…, D + i2 en vez de D + 1, D + 2, …, D + i. Esta variación
permite una mejor distribución de las claves que colisionan.
➢ Arreglos anidados
➢ Encadenamiento
Cabe destacar que cualquiera que sea el método seleccionado para resolver
las colisiones, se debe tener en cuenta en qué estado queda la estructura al
insertar y, sobre todo, eliminar elementos. La eliminación es la operación que
más afecta cuando se tiene colisiones, por lo que se le debe dedicar especial
atención para no perder eficiencia en la búsqueda.
Cabe aclarar que estas fórmulas son válidas solamente en caso de funciones hash
con el método lineal de solución de colisiones.
ÁRBOL
ÁRBOLES DE BÚSQUEDA
_____________________________________________
16
Luis Carlos Torres Soler, Árboles, pág 1.
17
Osvaldo Cairó, Silvia Guardati. Estructuras de datos, tercera edición, pág 418.
18
Spiegato, ¿Qué es un árbol de búsqueda?, https://spiegato.com/es/que-es-un-arbol-de-busqueda, consultado el 7 de mayo
de 2022.
BIBLIOGRAFÍA
1. http://ual.dyndns.org/biblioteca/Estructura%20de%20Datos/Pdf/
09%20Metodos%20de%20busqueda.pdf
2. Castro, A. (2014), Slideshare, Métodos de división y de medio cuadrado,
Tomado de http://es.slideshare.net/analivecastrovargas/funcion-hash-
metodos-de-divisi
3. Fernandez, C. (2010).Documento de estructura de datos para arreglos.
Tomado de https://www.utm.mx/~caff/doc/Notas%20de%20Estructura%20de
%20datos.pdf
4. Fidalgo., R. L. (2013). Algoritmos de Busqueda y Ordenacion
5. Vilugron, J. (2014), Slideshare, Algoritmos de búsqueda, Tomado de
https://es.slideshare.net/javiervilugron/algoritmo-de-busqueda-truncamiento
6. Cairó Osvaldo, Guardati Silvia, Estructuras de datos, Tercera Edición
7. Rodriguez Cesar, Estructuras de datos y Algoritmos: Árboles
NOTA:3.5