Está en la página 1de 35

FACULTAD DE INGENIERA

ESCUELA DE INGENIERA EN SISTEMAS Y COMPUTACIN


ESTRUCTURA DE DATOS Pamela Vsquez Costales

UNIDAD II CAPTULO 8 ESTRUCTURAS DE DATOS LINEALES PARA LA BSQUEDA DE LA INFORMACIN

ESTRUCTURAS DE DATOS LINEALES


Objetivos
O Comprender el concepto de bsqueda

y su importancia en mltiples aplicaciones computacionales. O Describir el algoritmo de la bsqueda secuencial.

Objetivos
O Describir el algoritmo de la bsqueda

binaria, distinguiendo claramente sus ventajas. O Implantar los algoritmos de bsqueda en estructuras lineales que utilizan los dos tipos de representacin (por posiciones y por ligas).

Objetivos
O Entender las ventajas y desventajas

de los algoritmos de bsqueda, segn la representacin de la estructura y en conjunto con las operaciones de insercin y eliminacin de elementos.

Por qu es importante la bsqueda de informacin? Uno de los propsitos de la computadora es que sirva de medio para el almacenamiento de grandes volmenes de informacin, lo que implica la existencia de mecanismos para accesar eficientemente a esta ltima.

Los mecanismos de acceso mas comunes requieren realizar una bsqueda, de ah que este concepto, aunado al de almacenar la informacin en una estructura de datos eficiente, es de suma importancia en el mbito computacional.

Cmo realizar eficientemente una bsqueda? Imagine que tiene que buscar un telfono en el directorio. Qu pasara si el directorio no tuviera la informacin ordenada? Lo ms seguro es que tardara das, semanas o meses buscando.

Podemos deducir que un requisito importante para que el proceso de bsqueda se realice en forma eficiente es que la informacin est ordenada, por lo que se requiere plantear una representacin y un mtodo de acceso para que la informacin se almacene ordenadamente y se facilite el proceso de bsqueda.

Para ordenar la informacin es necesario realizar el ordenamiento segn uno (o varios) de los campos que conforman cada registro de informacin. El campo que determina el ordenamiento se denomina llave, ya que distingue de manera nica a cada registro.

La llave puede ser simple, si se forma con un solo campo (como la matrcula de un alumno en la universidad ) o compuesta, si se forma por varios campos (nombre, apellido y direccin de una persona), por lo que en una estructura de datos para la bsqueda de informacin no se guardar informacin repetida.

Qu opciones de representacin en memoria existen para una estructura de datos para la bsqueda de informacin?

Si se desea utilizar una estructura temporal y limitada, para obtener accesos rpidos, se deber pensar en memoria principal.

Si se desea utilizar una estructura permanente e ilimitada para almacenar grandes volmenes de informacin, se deber pensar en memoria secundaria. Esto lleva a ligar el concepto con lo que en realidad, es la implementacin de un sistema de base de datos.

Posibles representaciones lineales en memoria principal En memoria esttica se puede utilizar un arreglo que guarde la informacin en forma ordenada. Esta representacin, tpicamente, se conoce con el nombre de tabla.

En memoria dinmica se puede utilizar una lista encadenada que guarde ordenadamente la informacin. Esta representacin, generalmente, se llama lista ordenada.

En ambos casos, y analizando estas representaciones como un TDA, las operaciones bsicas necesarias para la estructura seran: insercin, eliminacin, actualizacin y consulta de un elemento. Se puede observar que estas operaciones requieren realizar bsquedas para ubicar la informacin en la que se va a trabajar, por lo que la bsqueda se vuelve un proceso fundamental en estos TDA.

En ambos casos, y analizando estas representaciones como un TDA, las operaciones bsicas necesarias para la estructura seran: insercin, eliminacin, actualizacin y consulta de un elemento. Se puede observar que estas operaciones requieren realizar bsquedas para ubicar la informacin en la que se va a trabajar, por lo que la bsqueda se vuelve un proceso fundamental en estos TDA.

Cmo se puede implementar el proceso de bsqueda en una estructura lineal? Hay dos algoritmos bsicos para implementar este proceso:

La bsqueda secuencial es el algoritmo ms obvio y el que tiene una implantacin intuitiva. Consiste en comparar a partir del primer elemento de la estructura, secuencialmente, hasta que el elemento buscado se encuentra, o un elemento mayor al buscado (en cuyo caso se puede dejar de buscar, pues los elementos restantes son mayores al estar ordenada la informacin, y es evidente que el elemento por buscar no existe).

Este algoritmo no es apropiado cuando se tiene una tabla con mucha informacin, ya que, en el peor caso, este algoritmo requiere realizar n comparaciones (donde n es la cantidad de elementos).

La bsqueda binaria consiste en dividir sucesivamente la estructura en mitades, descartando del proceso de bsqueda la mitad en que no se puede encontrar el elemento que se busca. El proceso parte la estructura en mitades cada vez ms pequeas, lo que asegura que tarde o temprano se encuentre el elemento buscado o bien, se decide que el elemento no se encontr.

Este algoritmo tiene un comportamiento eficiente si lo comparamos con la bsqueda secuencial. Est comprobado matemticamente que, para este algoritmo, el peor caso requiere realizar log2 n + 1 comparaciones (donde n es la cantidad de elementos en la estructura).

Por lo tanto, para grandes cantidades de informacin, este algoritmo es ms apropiado. Algoritmo de bsqueda binaria O Encontrar el elemento de la mitad de la tabla. O Si su valor es igual a la llave buscada: se termina y se reporta que 9 hubo xito en la bsqueda.

O Si no, se toma la mitad de la tabla

apropiada segn el valor buscado y se repite este proceso hasta llegar a un segmento de tabla que contenga slo un elemento. O Si el ltimo elemento verificado en la tabla no es igual al valor buscado, se termina y se reporta el fracaso en la bsqueda.

Qu ventajas y desventajas ofrece la representacin de una tabla en memoria esttica? La principal ventaja es que el algoritmo de la bsqueda binaria se puede implementar fcilmente, considerando que las mitades se pueden calcular con base en los ndices de un arreglo, por lo tanto, el proceso de bsqueda es eficiente.

Sin embargo, ya que los algoritmos de bsqueda presuponen que la informacin est compactada (no hay huecos en el arreglo), el proceso para insertar y borrar informacin en la tabla se vuelve ineficiente.

Analizando la implementacin bajo estas consideraciones, la insercin de un elemento implica hacer un hueco en el arreglo, recorriendo todos los elementos que se encuentren, a partir de esa posicin, una posicin hacia abajo.

Por otro lado, la eliminacin de un elemento, de la misma manera, para no dejar un hueco al borrar el elemento, implica recorrer todos los elementos una posicin hacia arriba como indica la siguiente figura:

Qu ventajas y desventajas ofrece la representacin de una lista ordenada en memoria dinmica? Definitivamente, el problema de los corrimientos de informacin, que apareci como una desventaja en una tabla, no es una caracterstica propia de una estructura que utiliza encadenamientos,

por lo que, comparativamente, la eficiencia en las operaciones de insercin y eliminacin de elementos es una ventaja de esta representacin. Sin embargo, la nica estrategia de bsqueda que se puede aplicar sobre esta representacin es la bsqueda secuencial, debido a que la informacin est almacenada en forma dispersa.

El algoritmo de la bsqueda binaria, aunque se puede implantar en esta representacin, se volvera ineficiente, pues el clculo de las mitades en una lista implicara recorrer sus elementos desde el inicio.

El algoritmo de la bsqueda binaria, aunque se puede implantar en esta representacin, se volvera ineficiente, pues el clculo de las mitades en una lista implicara recorrer sus elementos desde el inicio.

Por lo tanto, se puede concluir que ninguna de las dos propuestas de representacin lineal cumplen, al mismo tiempo, con las condiciones de eficiencia (insercin, eliminacin y bsqueda). Esto nos lleva a suponer que se necesita una estructura de datos diferente que cumpla con ambas caractersticas, como se estudiar en el siguiente captulo.

EJERCICIOS CAPTULO VII 1. Defina los siguientes conceptos:


O Tabla O Bsqueda Secuencial

O Bsqueda Binaria

También podría gustarte