Está en la página 1de 18

UNIVERSIDAD DISTRITAL FRANCISCO JOSÉ DE CALDAS

FACULTAD DE INGENIERÍA

PROYECTO CURRICULAR DE INGENIERÍA DE SISTEMAS

Integrantes:

Diego Alejandro Bautista Castañeda - 20192020139


Daniel Santiago Arcila Martínez - 20191020075
Steven Espejo Cabarcas - 20192020138

CIENCIAS DE LA COMPUTACIÓN II - Gr 83
TALLER #2

BOGOTÁ D.C
2021
BÚSQUEDA

Una de las operaciones más importantes en el procesamiento de información: la


búsqueda. Esta operación se utiliza básicamente para recuperar datos que se
habían almacenado con anticipación. El resultado puede ser de éxito si se
encuentra la información deseada, o de fracaso, en caso contrario.

La búsqueda ocupa una parte importante de nuestra vida. Prácticamente todo el


tiempo estamos buscando algo. El mundo en que se vive hoy día es desarrollado,
automatizado, y la información representa un elemento de vital importancia. Es
fundamental estar informados y, por lo tanto, buscar y recuperar información. Por
ejemplo, se buscan números telefónicos en un directorio, ofertas laborales en un
periódico, libros en una biblioteca, etcétera.

En los ejemplos mencionados, la búsqueda se realiza, generalmente, sobre


elementos que están ordenados. Los directorios telefónicos están organizados
alfabéticamente. Las ofertas laborales están ordenadas por tipo de trabajo y los
libros de una biblioteca están clasificados por tema. Sin embargo, puede suceder
que la búsqueda se realice sobre una colección de elementos no ordenados. Por
ejemplo, cuando se busca la localización de una ciudad dentro de un mapa.

Se concluye que la operación de búsqueda se puede llevar a cabo sobre elementos


ordenados o desordenados. Cabe destacar que la búsqueda es más fácil y ocupa
menos tiempo cuando los datos se encuentran ordenados.
BÚSQUEDA INTERNA

● La búsqueda interna trabaja con elementos que se encuentran almacenados


en la memoria principal de la máquina. Éstos pueden estar en estructuras
estáticas (arreglos) o dinámicas (listas ligadas y árboles). ¹

● La búsqueda interna es la aplicación en la que todos los elementos de la


estructura estática (arreglo) o dinámica (lista ligada o árbol) se encuentran
almacenados en la memoria principal de la computadora. ²

● Este tipo de búsqueda trabaja con elementos residentes en memoria


principal, estos pueden estar almacenados en estructuras estáticas o en
estructuras dinámicas.³

● La búsqueda interna es previa a la búsqueda externa y más fácil de emplear,


por su bajo costo ya que apenas requiere esfuerzo. Es una información
accesible en todo momento y fiable para el consumidor aunque, sin embargo,
a menudo es incompleta e incorrecta (Walters y Bergiel, 1989). ⁴

Los métodos de búsqueda interna más importantes son:

❖ 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

● La búsqueda secuencial consiste en revisar elemento tras elemento hasta


encontrar el dato buscado, o llegar al final del conjunto de datos disponible. ⁵

Ojo el interlineado es de 1 revisar

Ejemplo del autor???


● Consiste en recorrer el archivo comparando la clave buscada con la clave del
registro en curso. El recorrido lineal del archivo termina cuando se encuentra
el elemento, o bien, cuando se alcanza el final del archivo. Se pueden
presentar algunas variantes dentro de este método, dependiendo de si el
archivo está o no ordenado.6
Ejemplo del autor???

● Consiste en recorrer el arreglo o vector elemento a elemento e ir comparando


con el valor buscado (clave). Se empieza con la primera casilla del vector y
observa una casilla y se observa una casilla tras otra hasta que se encuentre
el elemento buscado o se han visto todas las casillas.
El resultado de la búsqueda es un solo valor, será la posición del elemento
buscado o cero.7

Ejemplo del autor???

Arreglos

Definición: El arreglo es un tipo estructurado de datos, el cual es capaz de


almacenar una colección de datos del mismo tipo. 8

Arreglos Desordenados

Consiste en recorrer el arreglo de izquierda a derecha hasta que se encuentre el


elemento buscado o se termine el arreglo, lo que ocurra primero. Normalmente
cuando una función de búsqueda concluye con éxito, interesa conocer en qué
posición fue hallado el elemento que se estaba buscando. Esta idea se puede
generalizar para todos los métodos de búsqueda.

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

La búsqueda secuencial en arreglos ordenados es similar al caso anterior. Sin


embargo, el orden entre los elementos del arreglo permite incluir una nueva
condición que hace más eficiente al proceso.

Como el arreglo está ordenado, se establece una nueva condición: el elemento


buscado tiene que ser mayor que el del arreglo. Cuando el ciclo se interrumpe, se
evalúa cuál de las condiciones es falsa. Si la posición final del arreglo es mayor al
dato que se quiere buscar, se está ante un caso de fracaso: el elemento no está en
el arreglo. Si el dato se está en cierta posición entonces se encontró al elemento en
el arreglo.

Listas enlazadas

Definición: Secuencia ordenada de nodos donde cada nodo almacena un dato


(información) y una referencia al siguiente nodo. 9

El método de búsqueda secuencial en listas ligadas o enlazadas consiste en


recorrer la lista nodo tras nodo, hasta encontrar al elemento buscado (éxito), o hasta
que lleguemos al final de la lista (fracaso). La lista, como en el caso de arreglos, se
puede encontrar ordenada o desordenada. El orden en el cual se puede recorrer la
lista depende de sus características; puede ser simplemente ligada, circular o
doblemente ligada.

Análisis de la búsqueda secuencial

El número de comparaciones es uno de los factores más importantes que se utilizan


para determinar la complejidad de los métodos de búsqueda. Para analizar la
complejidad de la búsqueda secuencial, se deben establecer los casos más
favorables o desfavorables que se presenten.

Al buscar, por ejemplo, un elemento en un arreglo unidimensional desordenado de


N componentes, puede suceder que ese valor no se encuentre; por lo tanto, se
harán N comparaciones al recorrer todo el arreglo. Por otra parte, si el elemento se
encuentra en el arreglo, éste puede estar en la primera posición, en la última o en
alguna intermedia. Si es el primero, se hará una comparación; si se trata del último,
se harán N comparaciones; y si se encuentra en la posición i, entonces se realizarán
i comparaciones.

__________________________________________
9
Carlos Delgado Kloos, Jesús Arias Fisteus, Carlos Alario Hoyos, Julio Villena Román. Listas enlazadas, pág 9.

Ahora bien, el número de comparaciones que se llevan a cabo si trabajamos con


arreglos ordenados será el mismo que para desordenados, siempre y cuando el
elemento se encuentre en el arreglo. Si no fuera éste el caso, entonces el número
de comparaciones disminuirá sensiblemente en arreglos ordenados, siempre que el
valor buscado esté comprendido entre el primero y el último elemento del arreglo.

Por otra parte, el número de comparaciones en la búsqueda secuencial en listas


simplemente ligadas es el mismo que para arreglos.

Ejemplo de búsqueda secuencial

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

Figura 1. Datos de estudiantes almacenados en vectores

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

● La búsqueda binaria consiste en dividir el intervalo de búsqueda en dos


partes, comparando el elemento buscado con el que ocupa la posición central
en el arreglo. Para el caso de que no fueran iguales se redefinen los
extremos del intervalo, según el elemento central sea mayor o menor que el
elemento buscado, disminuyendo de esta forma el espacio de búsqueda. El
proceso concluye cuando el elemento es encontrado, o cuando el intervalo de
búsqueda se anula, es vacío.

El método de búsqueda binaria funciona exclusivamente con arreglos


ordenados. No se puede utilizar con listas simplemente ligadas -no
podríamos retroceder para establecer intervalos de búsqueda ni con arreglos
desordenados. Con cada iteración del método el espacio de búsqueda se
reduce a la mitad; por lo tanto, el número de comparaciones a realizar
disminuye notablemente. Esta disminución resulta significativa cuanto más
grande sea el tamaño del arreglo. 11

Ejemplo del autor???

_____________________________________________
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.

Para la ejecución de esta búsqueda; se divide el total de los elementos en


dos, comparando el elemento buscado con el central, en caso de no ser
similares, se determina si el elemento buscado es menor o mayor al central,
para determinar si la búsqueda continua del lado izquierdo (menor) o derecho
(mayor) del central, repitiendo el mismo proceso de división y comparación,
hasta localizar el elemento buscado o que la división ya no sea posible.

Es de suma importancia resaltar que este método de búsqueda sólo funciona


con estructuras de datos previamente ordenadas, dividiendo cada vez a la
mitad el proceso de búsqueda, lo que hace que el método sea más
eficiente.12
Ejemplo del autor???

Análisis de la búsqueda binaria

En el análisis se encuentran casos, los cuales se dividen en él favorable y el


desfavorable. El primero sucede cuando el elemento buscado es el central, en dicho
caso se hará una sola comparación; el segundo sucede cuando el elemento no se
encuentra en el arreglo; entonces se harán aproximadamente logaritmo en base dos
de n comparaciones, ya que con cada comparación el número de elementos en los
cuales se debe buscar se reduce en un factor de 2. De esta forma, se determinan
los números mínimo, mediano y máximo de comparaciones que se deben realizar
cuando se utiliza este tipo de búsqueda.

❖ El método de búsqueda binaria es más eficiente que el método de búsqueda


secuencial. La diferencia se hace más significativa conforme más grande sea
el tamaño del arreglo. Sin embargo, no hay que olvidar que

Importante:

❖ El método de búsqueda binaria trabaja solamente con arreglos ordenados;


por lo tanto, si el arreglo estuviera desordenado antes de emplear este
método, aquél debería ordenarse.

_____________________________________________
12
Torres, Alejandra., (2017). Método de Búsqueda, pág 4.

Ejemplo de búsqueda binaria

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.

Figura 3. Número de billetes de lotería y lugar de venta

Antes de proceder a la búsqueda requerida debemos de desarrollar el algoritmo de


búsqueda binaria que nos ayude para tal consulta, el cuál se presenta en la figura 4.

Figura 4. Pseudocódigo de la función búsqueda binaria

_____________________________________________
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.

Figura 5. Pseudocódigo del algoritmo número ganador

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.

BÚSQUEDA POR TRANSFORMACIÓN DE CLAVES

● Este método permite aumentar la velocidad de búsqueda sin necesidad de


tener los elementos ordenados. Cuenta con la ventaja de que el tiempo de
búsqueda es independiente del número de componentes del arreglo. 14

● Este método conocido como transformación de claves o hash, permite


aumentar la velocidad de búsqueda sin necesidad de tener los elementos
ordenados. Cuenta con la ventaja de que el tiempo de búsqueda es
independiente del número de componentes del arreglo.
Supongamos que se tiene una colección de datos, cada uno de ellos
identificado por clave, es claro que resulta atractivo tener acceso a ellos de
manera directa, así que el método por transformación de claves nos permite
realizar esta actividad; es decir, localizar el dato en forma directa.

_____________________________________________
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

❖ Función hash por módulo:división

Consiste en tomar el residuo de la división de la clave entre el número de


componentes del arreglo. Supongamos, por ejemplo, que se tiene un arreglo
de N elementos, y K es la clave del dato a buscar. La función hash queda
definida por la siguiente fórmula:

Se observa que el residuo de la división se le suma 1, esto último con el


objetivo de obtener un valor comprendido entre 1 y N.

Para lograr mayor uniformidad en la distribución, es importante que N sea un


número primo o es divisible entre muy pocos números. Por lo tanto, si N no
es un número primo, se debe considerar el valor primo más cercano.

Ejemplo. Sea N = 100, el tamaño del arreglo. Sus direcciones de 1 a 100.


Sea K1 = 7259 y K2 = 9359, dos claves que deban asignarse a posiciones en
el arreglo.

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.

H (K 1 )=( 7259mod 97)+ 1=82


H (K 2 )=(9359 mod 97)+1=48

Es decir, que no N = 97 se ha eliminado la colisión.

❖ Función hash cuadrado

Consiste en elevar al cuadrado la clave y tomar los dígitos centrales como


dirección. El número de dígitos que se debe considerar se encuentra
determinado por el rango del índice. Sea K la clave del dato a buscar, la
función hash cuadrado queda definida, entonces, por la siguiente fórmula:

La suma de la unidad a los dígitos centrales es útil para obtener un valor


comprendido entre 1 y N.

Ejemplo.
2
123 =15129→51
2
136 =18496→84
2
730 =532900 →29
2
301 =90601→06
2
625 =390625→06

❖ Función hash por plegamiento

Consiste en dividir la clave en partes, tomando igual número de dígitos


aunque la última puede tener menos, y operar con ellas, asignando como
dirección los dígitos menos significativos. La operación entre las partes se
puede realizar por medio de sumas o multiplicaciones. Sea K la clave del
dato a buscar. K está formada por los dígitos d 1, d2, …, dn. La función hash
por plegamiento queda definida por la siguiente fórmula:
El operador que aparece en la fórmula operando las partes de la clave es el
de suma, pero, como ya se aclaró, puede ser el de la multiplicación. En este
contexto, la suma de una unidad a los dígitos menos significativos -
dígmensig- es para obtener un valor comprendido entre 1 y N.

Ejemplo. Si dividimos los números de 8 cifras en 3, 3 y 2 cifras y se suman,


dará otro número de tres cifras (y si no, se cogen las tres últimas cifras):

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

❖ Función hash por truncamiento

Consiste en tomar algunos dígitos de la clave y formar con ellos una


dirección. Este método es de los más sencillos, pero es también de los que
ofrecen menos uniformidad en la distribución de las claves.

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:

La elección de los dígitos es arbitraria, Se podrían tomar los de las posiciones


impares o de las pares. Luego se podrían unir de izquierda a derecha o de
derecha a izquierda. La suma de una unidad a los dígitos seleccionados es
útil para obtener un valor entre 1 y 100.

Ejemplo. Seleccionando las posiciones 2, 4 y 6 en los siguientes números:

5700931→703
3498610→481
0056241→064
9134720→142
5174829→142
Falta la explicación de las funciones hash y los ejemplos por dos
autores?????

En adelante No es del tema de la consulta


❖ Solución de colisiones
La elección de un método adecuado para resolver colisiones es tan
importante como la elección de una buena función hash. Cuando esta obtiene
una misma dirección para dos claves diferentes, se está ante una colisión.
Normalmente, cualquiera que sea el método elegido resulta costoso tratar las
colisiones. Es por ello que se debe hacer importante para encontrar la función
que ofrezca la mayor uniformidad en la distribución de las claves.

La manera más natural de resolver el problema de las colisiones es reservar


una casilla por clave; es decir, aquellas que se corresponden una a una con
las posiciones del arreglo. Pero, como ya se mencionó, esta solución puede
tener un alto costo en memoria; por lo tanto, se deben analizar otras
alternativas que permitan equilibrar el uso de memoria con el tiempo de
búsqueda.

Se estudiarán algunos de los métodos más utilizados para resolver


colisiones, que se pueden clasificar en:

➢ Reasignación

Existen varios métodos que trabajan bajo el principio de comparación y


resignación de elementos. A continuación, se analizarán tres de ellos:

■ 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.

La principal desventaja de este método es que puede haber un


fuerte agrupamiento alrededor de ciertas claves, mientras que
otras zonas del arreglo podrían permanecer vacías. Si las
concentraciones de claves son muy frecuentes, la búsqueda
será principalmente secuencial, perdiendo así las ventajas del
método hash.

■ 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.

■ Doble Dirección Hash


Consiste en que una vez que se detecta la colisión, se genera
otra dirección aplicando la misma función hash a la dirección
previamente obtenida. El proceso se detiene cuando el
elemento es hallado, o cuando se encuentra una posición vacía.

La función hash que se aplique no necesariamente tiene que ser


la misma que originalmente se aplicó a la clave; podría ser
cualquier otra. Sin embargo, no existe ningún estudio que
precise cuál es la mejor función que se debe utilizar en el
cálculo de las direcciones sucesivas.

➢ Arreglos anidados

Consiste en que cada elemento del arreglo tenga otro arreglo, en el


cual se almacenan los elementos que colisionan. Si bien la solución
parece sencilla, es claro que resulta ineficiente. Al trabajar con arreglos
se depende del espacio que se haya asignado a éstos, lo cual conduce
a un nuevo problema difícil de solucionar: elegir un tamaño adecuado
de arreglo que permita un equilibrio entre el costo de memoria y el
número de valores -que colisionan- que pudiera almacenar.

➢ Encadenamiento

Consiste en que cada elemento del arreglo tenga un apuntador a una


lista ligada, la cual se irá generando y almacenará los valores que
colisionan.

Es el método más eficiente debido al dinamismo propio de las listas.


Cualquiera que sea el número de colisiones que se presenten, se
podrán resolver sin inconvenientes.

Como desventaja del método de encadenamiento se menciona el


hecho de que ocupa espacio adicional al de la tabla y que exige el
manejo de listas ligadas. Además, si las listas crecen demasiado se
perderá la facilidad de acceso directo del método hash.

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.

Analisis del metodo por transformación de claves

Para analizar la complejidad de este método es necesario realizar varios cálculos


probabilísticos, que no se estudiarán en esta obra. La dificultad del análisis se debe
principalmente a que no solo interviene la función hash sino también el método
utilizado para resolver las colisiones. Por lo tanto, se debería analizar cada una de
las posibles combinaciones que se pudieran presentar.

Sea ℷ el factor de ocupación de un arreglo, definido como M/N, donde M es el


número de elementos en el arreglo y N es su tamaño. Según Lipschutz, la
probabilidad de llevar a cabo una búsqueda con éxito (S) y otra sin exito (Z), quedan
determinadas por las siguiente fórmulas:

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

Definición: Un árbol es un conjunto finito de nodos R, tal que:

❖ Hay un nodo principal llamado raíz.


❖ Los otros nodos se particionan en S subconjuntos R ₁, R ₂, ..... R, que a la vez
son también árboles.

Esta definición es algo recursiva y puede simplificarse como un árbol es una


estructura compuesta por un nodo raíz y varios árboles encadenados al nodo raíz. 16

ÁRBOLES DE BÚSQUEDA

● Los árboles son una estructura poderosa y eficiente para almacenar y


recuperar información. Debido al dinamismo que caracteriza a los árboles. El
beneficio de utilizarlos es mayor cuanto más variable sea el número de datos
a tratar.17

● Un árbol de búsqueda es una estructura de datos utilizada en la


programación de computadoras para contener y organizar una lista de datos.
Cada árbol de búsqueda se compone de un conjunto ordenado de nodos.
Estos nodos pueden conectarse a cero o más otros nodos. Los nodos
individuales contienen algunos datos, así como enlaces a otros nodos. Los
datos que están contenidos en los nodos del árbol se ordenan muy a menudo
de alguna manera para permitir que los algoritmos eficientes busquen,
inserten y eliminen nodos con facilidad. 18

_____________________________________________
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

El tema de la consulta está incompleto, mejorar el formato de la presentación de


acuerdo a los comentarios.

NOTA:3.5

También podría gustarte