Algoritmos de Busqueda
Algoritmos de Busqueda
Algoritmos de Busqueda
FACULTAD DE INGENIERIA.
Contenido
Unidad 2. Algoritmos de Búsqueda. ................................................................................... 2
BÚSQUEDA EN LISTAS. ............................................................................................ 2
Búsqueda Secuencial o Lineal. ........................................................................................... 3
Mejoras en la eficiencia de la búsqueda lineal ............................................................... 4
Complejidad de la búsqueda secuencial ......................................................................... 5
Búsqueda Binaria. ............................................................................................................... 6
Algoritmo de Búsqueda Binaria: ........................................................................................ 7
1
UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO.
FACULTAD DE INGENIERIA.
BÚSQUEDA EN LISTAS.
Con mucha frecuencia los programadores trabajan con grandes cantidades de
datos almacenados en arrays y registros, y por ello será necesario determinar si un
array contiene un valor que coincida con un cierto valor clave. El proceso de
encontrar un elemento específico de un array se denomina búsqueda. En esta
sección se examinarán dos técnicas de búsqueda: búsqueda lineal o secuencial, la
técnica más sencilla, y búsqueda binaria o dicotómica, la técnica más eficiente.
2
UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO.
FACULTAD DE INGENIERIA.
3
UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO.
FACULTAD DE INGENIERIA.
3) Transposición
Este es otro esquema de reorganización dinámica que consiste en que, cada vez
que se lleve a cabo una búsqueda exitosa, el registro correspondiente se
intercambia con el anterior. Con este procedimiento, entre más accesos tenga el
registro, más rápidamente avanzará hacia la primera posición. Comparado con el
método de movimiento al frente, el método requiere más tiempo de actividad para
reorganizar al conjunto de registros. Una ventaja de método de transposición es que
no permite que el requerimiento aislado de un registro, cambie de posición todo el
conjunto de registros. De hecho, un registro debe ganar poco a poco su derecho a
alcanzar el inicio de la lista.
4
UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO.
FACULTAD DE INGENIERIA.
4) Ordenamiento
Una forma de reducir el número de comparaciones esperadas cuando hay una
significativa frecuencia de búsqueda sin éxito es la de ordenar los registros en base
al valor de la llave. Esta técnica es útil cuando la lista es una lista de excepciones,
tales como una lista de decisiones, en cuyo caso la mayoría de las búsquedas no
tendrán éxito. Con este método una búsqueda sin éxito termina cuando se
encuentra el primer valor de la llave mayor que el buscado, en lugar de la final de la
lista.
5
UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO.
FACULTAD DE INGENIERIA.
Búsqueda Binaria.
Una idea similar se aplica en la búsqueda en una lista ordenada. Se sitúa la lectura
en el centro de la lista y se comprueba si la clave coincide con el valor del elemento
central. Si no se encuentra el valor de la clave, se sigue la búsqueda uno en la mitad
inferior o superior del elemento central de la lista. En general, si los datos de la lista
están ordenados se puede utilizar esa información para acortar el tiempo de
búsqueda.
¿Podemos hacer algo mejor? Trataremos de aprovechar el hecho de que la lista
está ordenada y vamos a hacer algo distinto: nuestro espacio de búsqueda se irá
achicando a segmentos cada vez menores de la lista original. La idea es descartar
segmentos de la lista donde el valor seguro que no puede estar:
6
UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO.
FACULTAD DE INGENIERIA.
Método iterativo
Método recursivo
7
UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO.
FACULTAD DE INGENIERIA.
8
UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO.
FACULTAD DE INGENIERIA.
9
UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO.
FACULTAD DE INGENIERIA.
10
UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO.
FACULTAD DE INGENIERIA.
11