Sie sind auf Seite 1von 21

ALGORÍTMICA III

Algorítmica III

Métodos de Búsqueda
Introducción

CARRERA DE
INGENIERÍA
DE SISTEMAS
ALGORÍTMICA III

Contenido
●Introducción.
●Clasificación de la Búsqueda.
●Métodos de Búsqueda Interna.
●Búsqueda Secuencial. Análisis.
Búsqueda Secuencial usando Bloques. Determinación del

Bloque. Análisis.
●Búsqueda Secuencial usando Índices.
●Búsqueda Binaria. Análisis.
Árbol Binario de Búsqueda. Búsqueda, Inserción y Eliminación.

Análisis.
●Métodos de Búsqueda Externa.
CARRERA DE
INGENIERÍA
DE SISTEMAS
ALGORÍTMICA III

Introducción
●La búsqueda es una operación que nos permite recuperar
información previamente almacenada.

El resultado de la operación es el éxito en el caso de encontrar


el elemento buscado y de fracaso en caso contrario.

●Ejemplos:
●Directorios de archivos ordenados.

●Ofertas laborales ordenados por tipo de trabajo.

●Libros de la biblioteca ordenados por autor y tema.

Se puede realizar sobre elementos ordenados ó sobre


elementos desordenados.

CARRERA DE
INGENIERÍA
DE SISTEMAS
ALGORÍTMICA III

Clasificación de la Búsqueda
● Se pueden clasificar en:

●Búsqueda Interna: Cuando los elementos se encuentran en memoria principal.

●Búsqueda externa: Cuando todos los elementos se encuentran en memoria


secundaria

CARRERA DE
INGENIERÍA
DE SISTEMAS
ALGORÍTMICA III

Métodos de Búsqueda Interna


Estos pueden ser almacenados en estructuras estáticas como arreglos y estructuras

dinámicas como listas enlazadas y árboles.

●Búsqueda Secuencial ó lineal


●Búsqueda Secuencial con Bloques

●Búsqueda con Índices.

●Búsqueda Binaria.

●Búsqueda por transformación de clave (hash).

●Árboles Binarios de Búsqueda.

CARRERA DE
INGENIERÍA
DE SISTEMAS
ALGORÍTMICA III

Búsqueda Secuencial
Consiste en revisar elemento por elemento de la estructura de

datos.

●Hasta encontrar el dato más buscado ó

●Hasta llegar al final de la lista de datos disponibles.

●Búsqueda Secuencial en Arreglo Desordenado.

●Búsqueda Secuencial en Arreglo Ordenado

●Búsqueda Secuencial en Lista Enlazada Desordenada

●Búsqueda Secuencial en Lista Enlazada Ordenada

CARRERA DE
INGENIERÍA
DE SISTEMAS
ALGORÍTMICA III

Análisis de la Búsqueda Secuencial


Consiste en determinar cual es la operación elemental que más

afecta al algoritmo.

La comparación: es la operación que determina si un elemento se encuentra en su


posición respecto de otro.

Determina la operación elemental, se tiene que definir los límites


de dicha operación.
●Caso peor
●Caso medio

●Caso mejor

CARRERA DE
INGENIERÍA
DE SISTEMAS
ALGORÍTMICA III

Análisis de la Búsqueda Secuencial


●La operación elemental seleccionada es la comparación.

●Caso Mejor: El elemento buscado está en la primera posición.

Caso Mejor = 1

●Caso Peor: El elemento buscado no se encuentra en el arreglo.

Caso Peor = n

Caso Medio:
● El elemento buscado se encuentra en la posición i en el
arreglo.

Caso Medio = (1 + n) / 2

CARRERA DE
INGENIERÍA
DE SISTEMAS
ALGORÍTMICA III

Análisis de la Búsqueda Secuencial (Caso Medio)


●Misma probabilidad de la distribución de los datos.

Misma probabilidad de encontrar al elemento buscado en cualquier posición


del arreglo.

El número de comparaciones puede ser 1, 2, 3, ..., n y en cada paso debe


darse una probabilidad de 1/n


1 1 1 1
CasoMedio  1  2 3  ...  n 
n n n n
1
CasoMedio  1  2  3  ...  n  
n
 n  n  1  1 n 1
CasoMedio     
 2  n 2

CARRERA DE
INGENIERÍA
DE SISTEMAS
ALGORÍTMICA III

Búsqueda Secuencial usando Bloques


●El vector debe estar ordenado para este método.

●Trabajar con bloque de elementos en vez de elementos aislados.

El tamaño del bloque de elementos depende del número de


elementos del vector.

Se realiza comparando la clave con el último elemento de cada


bloque.

Si la clave resulta menor, se busca secuencialmente en los


elementos salteados del bloque de elementos.

CARRERA DE
INGENIERÍA
DE SISTEMAS
ALGORÍTMICA III

Análisis de la Búsqueda Secuencial usando


Bloques
●La operación elemental seleccionada es la comparación.

Caso Mejor: El elemento buscado se encuentre en el último elemento del


primer bloque.

Caso Mejor = 1

Caso Peor: El elemento buscado se encuentre en la penúltima posición del


último bloque y donde todos los bloque sean del mismo tamaño.

En el caso de que el último bloque no sea del mismo tamaño que el resto,

estaría dado por el penúltimo elemento del penúltimo bloque.

Caso Peor = N/(N)1/2 +((N)1/2 -1) = 2N/(N)1/2 – 1


CARRERA DE
INGENIERÍA
DE SISTEMAS
ALGORÍTMICA III

Análisis de la Búsqueda Secuencial usando


Bloques

Caso Medio:
● El elemento buscado se encuentra en la posición i en el
arreglo.
Caso Medio = [ 2N/(N)1/2 – 1 + 1 ]/2 = 2N/(N)1/2

CARRERA DE
INGENIERÍA
DE SISTEMAS
ALGORÍTMICA III

Búsqueda Secuencial usando Índices


●El método emplea vectores ordenados.
●Una alternativa es usando un vector principal y un

vector con índices.


●El vector principal trabajara con los datos ordenados.
●El vector de índices almacenará:

●Los valores de los campos claves correspondiente a los elementos del vector
principal y un apuntador a la posición en el vector principal de los datos
respectivos.

CARRERA DE
INGENIERÍA
DE SISTEMAS
ALGORÍTMICA III

Búsqueda Binaria
●Se efectúa sobre arreglos más no sobre listas.

●Los datos previamente deben estar ordenados.

●Consiste en comparar el valor buscado con el elemento medio y


discriminar si se encuentra en medio, la mitad superior ó la mitad
inferior.

Para luego proseguir con esta misma táctica en el bloque


definido anteriormente.

CARRERA DE
INGENIERÍA
DE SISTEMAS
ALGORÍTMICA III

Análisis de la Búsqueda Binaria


●La operación elemental seleccionada es la comparación.

●Caso Mejor: El elemento buscado está en la posición del medio de la lista.


Caso Mejor = 1

●Caso Peor: El elemento buscado no se encuentra en el arreglo.

●El problema consiste en que no se sabe a priori cuantas comparaciones van a


realizarse.

●Habrá tantas comparaciones como elementos medios.

CARRERA DE
INGENIERÍA
DE SISTEMAS
ALGORÍTMICA III

Árboles Binario de Búsqueda


● Árbol de búsqueda es si el valor contenido en cada nodo
●Es menor que los valores del subárbol derecho

●Es mayor o igual que los valores del subárbol izquierdo.

● Esta estructura permite buscar valores en forma más eficiente.

2 5

1 4 6
CARRERA DE
INGENIERÍA
DE SISTEMAS
ALGORÍTMICA III

Búsqueda de Árboles Binarios de Búsqueda


El proceso consiste en buscar el

VALOR.

●Si VALOR < N  hijo izquierdo de N 38


●Si VALOR > N  hijo derecho de N

●Repetir el paso (1) y (2) hasta que las siguientes


condiciones: 14 56

Si VALOR = N
●  puntero al nodo
encontrado. 82
8 23 45

Si hay un subárbol vació  La


búsqueda ha sido infructuosa


70
19

CARRERA DE
INGENIERÍA
DE SISTEMAS
ALGORÍTMICA III

Inserción de Árboles Binarios de Búsqueda

●El proceso consiste en insertar el VALOR.

●Si VALOR < N  el hijo izquierdo de N. 38


●Si VALOR > N  el hijo derecho de N.
●Si VALOR = N y existe hijo izquierdo  el hijo
14 56
izquierdo de N.
●Repetir el paso (1) , (2) y (3) hasta que las
siguientes condiciones: 82
8 23 45

●Si hay un subárbol vació  Se inserta en el


subárbol vació. 70
19

CARRERA DE
INGENIERÍA
DE SISTEMAS
ALGORÍTMICA III

Eliminación de Árboles Binarios de Búsqueda

El proceso consiste es eliminar el VALOR.


●Caso 1: N no tiene hijos  N se elimina y se


remplaza el puntero del padre a N por el puntero 38
nulo.

●Caso2: N tiene un hijo  N se elimina y es 14 56


reemplazando el puntero a N del Padre por puntero
al hijo único de N

Caso 3: N tiene dos hijos, N se elimina y es 8 82


● 23 45
remplazado por el nodo que está más a la derecha
en el subárbol izquierdo.

70
19

CARRERA DE
INGENIERÍA
DE SISTEMAS
ALGORÍTMICA III

Análisis de operaciones en Árboles Binarios de


Búsqueda
●Las operaciones básicas sin destruir la propiedad del árbol es
importante, puede resultar un árbol desequilibrado.

●Muchos nodos pueden tener un solo hijo y así sus ramas se


vuelven largas y delgadas, con esto se vuelve ineficiente. El peor
caso todos los nodos pueden tener un solo hijo.

Buscar un valor en el significa comparar prácticamente con los n


nodos del árbol.

Existen métodos para equilibrar el árbol y que las operaciones


de búsqueda, adición, ó borrado requieran un tiempo que este en


O(Log n) en el caso peor

CARRERA DE
INGENIERÍA
DE SISTEMAS
ALGORÍTMICA III

Métodos de Búsqueda Externa


● Datos almacenados en memoria secundaria y se usa
archivos.
● Archivos por que el volumen de datos ó permanencia de
datos.
● Operaciones de escritura y lectura tienen alto costo en
tiempo.
●Reducir el costo se optimiza la operación de búsqueda.

●Las más importantes son:

●Búsqueda en Archivos Secuenciales.


●Búsqueda en Archivos Secuenciales con Bloques

●Búsqueda con Índices.

●Búsqueda Binaria.

●Búsqueda por transformación de clave (Hash).

CARRERA DE
INGENIERÍA
DE SISTEMAS

Das könnte Ihnen auch gefallen