12
I NSTITUTO T ECNOLÓGICO S UPERIOR D E A CAYUCAN C ARRERA I NGENIERÍA E N I NFORMÁTICA C ATEDRÁTICO L.I. C RISTÓBAL T ENORIO J UÁREZ M ATERIA E STRUCTURA D E D ATOS E QUIPO L OS C HINCONGUÑOS ü R OBERTO P ARRA J IMÉNEZ ü P EDRO P ASCUAL S ÁNCHEZ ü E RIK F ERNÁNDEZ M ONKLES ü E DWIN R AFAEL M ORALES M ARTÍNEZ ü A DAM D E J ESÚS S ANGERO S ILVA S EMESTRE 307-D I NVESTIGACIÓN

Unidad VI Metodos de Busqueda Binaria y Secuencial

Embed Size (px)

DESCRIPTION

los metodos de busqueda ninaria y secuencial

Citation preview

Page 1: Unidad VI Metodos de Busqueda Binaria y Secuencial

INSTITUTO TECNOLÓGICO SUPERIOR DE

ACAYUCAN

CARRERA

INGENIERÍA EN INFORMÁTICA

CATEDRÁTICO

L.I. CRISTÓBAL TENORIO JUÁREZ

MATERIA

ESTRUCTURA DE DATOS

EQUIPO

LOS CHINCONGUÑOSü R O B E R T O P A R R A J I M É N E Zü P E D R O P A S C U A L S Á N C H E Zü E R I K F E R N Á N D E Z M O N K L E Sü E D W I N R A F A E L M O R A L E S M A R T Í N E Zü A D A M D E J E S Ú S S A N G E R O S I L V A

SEMESTRE

307-D

INVESTIGACIÓN

UNIDAD 6: MÉTODOS DE BÚSQUEDA

6.1: BÚSQUEDA SECUENCIAL

Page 2: Unidad VI Metodos de Busqueda Binaria y Secuencial

6.2: BÚSQUEDA B INARIA

INTRODUCCIÓNLa búsqueda es la operación más importante en el procesamiento de información, ya que permite recuperar datos previamente almacenados. El resultado de una búsqueda puede ser un éxito, si se encuentra la información o un fracaso, si no la encuentra.

La búsqueda se puede aplicar sobre elementos previamente ordenados o sobre elementos desordenados, en el primer caso la búsqueda es más fácil, en cambio en el segundo se dificulta un poco más el proceso, sobre todo cuando de se trata de encontrar una cantidad de elementos similares.

Un algoritmo de búsqueda es aquel que está diseñado para localizar un elemento con ciertas propiedades dentro de una estructura de datos; por ejemplo, ubicar el registro correspondiente a cierta persona en una base de datos, o el mejor movimiento en una partida de ajedrez.

Página 2 de 10

Page 3: Unidad VI Metodos de Busqueda Binaria y Secuencial

BÚSQUEDA SECUENCIALSe utiliza cuando el vector no está ordenado o no puede ser ordenado previamente. Consiste en buscar el elemento comparándolo secuencialmente (de ahí su nombre) con cada elemento del vector hasta encontrarlo, o hasta que se llegue al final. La existencia se puede asegurar cuando el elemento es localizado, pero no podemos asegurar la no existencia hasta no haber analizado todos los elementos del vector. A continuación se muestra el pseudocódigo del algoritmo:

Datos de entrada: vec: vector en el que se desea buscar el dato tam: tamaño del vector. Los subíndices válidos van desde 0 hasta tam-1 inclusive. Puede representarse así: vec[0...tam) o vec[0...tam-1]. dato: elemento que se quiere buscar.

Variables pos: posición actual en el vector

pos = 0while pos < tam: if vec[pos] == dato: Retorne verdadero y/o pos, else: pos = pos + 1Fin (while)Retorne falso,

Página 3 de 10

Page 4: Unidad VI Metodos de Busqueda Binaria y Secuencial

La búsqueda es el proceso de localizar un registro (elemento) con un valor de llave particular. La búsqueda termina exitosamente cuando se localiza el registro que contenga la llave buscada, o termina sin éxito, cuando se determina que no aparece ningún registro con esa llave. Normalmente un archivo secuencial se almacena en bloques, en un orden secuencial simple de los registros. La organización física del archivo en una cinta o disco se corresponde exactamente con la ubicación lógica del archivo. En este caso, el procedimiento para ubicar los nuevos registros en un archivo de pila separado, llamado archivo de registro (log file) o archivo de transacciones. Periódicamente, se realiza una actualización por lotes que mezcla el archivo de registro con el archivo maestro para producir un nuevo archivo en secuencia correcta de claves.

Búsqueda secuencial, también se le conoce como búsqueda lineal. Supongamos una colección de registros organizados como una lista lineal. El algoritmo básico de búsqueda secuencial consiste en empezar al inicio de la lista e ir a través de cada registro hasta encontrar la llave indicada (k), o hasta al final de la lista.

Página 4 de 10

Page 5: Unidad VI Metodos de Busqueda Binaria y Secuencial

BÚSQUEDA BINARIASe utiliza cuando el vector en el que queremos determinar la existencia de un elemento está previamente ordenado. Este algoritmo reduce el tiempo de búsqueda considerablemente, ya que disminuye exponencialmente el número de iteraciones necesarias.

Está altamente recomendado para buscar en arrays de gran tamaño. Por ejemplo, en uno conteniendo 50.000.000 elementos, realiza como máximo 26 comparaciones (en el peor de los casos).

Para implementar este algoritmo se compara el elemento a buscar con un elemento cualquiera del array (normalmente el elemento central): si el valor de éste es mayor que el del elemento buscado se repite el procedimiento en la parte del array que va desde el inicio de éste hasta el elemento tomado, en caso contrario se toma la parte del array que va desde el elemento tomado hasta el final. De esta manera obtenemos intervalos cada vez más pequeños, hasta que se obtenga un intervalo indivisible. Si el elemento no se encuentra dentro de este último entonces se deduce que el elemento buscado no se encuentra en todo el array.

A continuación se presenta el pseudocódigo del algoritmo, tomando como elemento inicial el elemento central del array.

Datos de entrada: vec: vector en el que se desea buscar el dato tam: tamaño del vector. Los subíndices válidos van desde 0 hasta tam-1 inclusive. dato: elemento que se quiere buscar.

Página 5 de 10

Page 6: Unidad VI Metodos de Busqueda Binaria y Secuencial

Variables centro: subíndice central del intervalo inf: límite inferior del intervalo sup: límite superior del intervalo

inf = 0sup = tam-1

Mientras inf <= sup: centro = ((sup - inf) / 2) + inf // División entera: se trunca la fracción Si vec[centro] == dato devolver verdadero y/o pos, de lo contrario: Si dato < vec[centro] entonces: sup = centro - 1 En caso contrario: inf = centro + 1Fin (Mientras)Devolver Falso

Si los datos que se buscan están clasificados en un determinado orden, el método citado anteriormente se denomina búsqueda binaria.

La búsqueda binaria utiliza un método de `divide y vencerás para localizar el valor deseado. Con este método se examina primero el elemento central de la lista; si éste es el elemento buscado, entonces la búsqueda ha terminado.

En caso contrario, se determinar si el elemento buscado será en la primera o la segunda mitad de la lista y a continuación se repite este proceso, utilizando el elemento central de esa sub lista.

Se puede aplicar tanto a datos en listas lineales como en árboles binarios de búsqueda. Los prerrequisitos principales para la búsqueda binaria son:

Página 6 de 10

Page 7: Unidad VI Metodos de Busqueda Binaria y Secuencial

La lista debe estar ordenada en un orden específico de acuerdo al valor de la llave.

Debe conocerse el número de registros.

Algoritmo:Se compara la llave buscada con la llave localizada al centro del arreglo.

Si la llave analizada corresponde a la buscada fin de búsqueda si no.

Si la llave buscada es menor que la analizada repetir proceso en mitad superior, sino en la mitad inferior.

El proceso de partir por la mitad el arreglo se repite hasta encontrar el registro o hasta que el tamaño de la lista restante sea cero, lo cual implica que el valor de la llave buscada no está en la lista.

Página 7 de 10

Page 8: Unidad VI Metodos de Busqueda Binaria y Secuencial

CONCLUSIÓNSECUENCIAL.

El método de búsqueda secuencial externa consiste en revisar el archivo elemento por elemento hasta encontrar el dato que se está buscando, o hasta llegar al final del archivo. Este método de búsqueda se puede aplicar a archivos ordenadas o desordenadas.

Si la búsqueda se aplica a un archivo desordenado y el elemento que se está buscando existe más de una vez, el proceso de búsqueda debe continuar hasta  que se llegue al fin del archivo.

Ejercicios. Crear un programa que genera N números aleatorios, los guarde en un archivo y posteriormente aplique la búsqueda secuencial.

Si la búsqueda se aplica a un archivo ordenado y el elemento que se está buscando existe más de una vez, el proceso de búsqueda termina cuando el elemento del archivo que se está comparando es mayor que el que se está buscando.

Ejercicios. Crear un programa que genera N números aleatorios, los guarde en un archivo, los ordene de forma ascendente y posteriormente aplique la búsqueda secuencial.

Página 8 de 10

Page 9: Unidad VI Metodos de Busqueda Binaria y Secuencial

BINARIA.

El método de búsqueda binaria externa utiliza el mismo principio que la búsqueda binaria interna. Divide el total de elementos del archivo en dos, comparando el elemento buscado con el central, en caso de no ser iguales 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 encontrar el elemento buscado o que la división ya no sea posible.

El archivo debe estar ordenado y se debe conocer el número de elementos del mismo para aplicar este método.

BIBLIOGRAFÍA

Página 9 de 10

Page 10: Unidad VI Metodos de Busqueda Binaria y Secuencial

HTTPS://SITES.GOOGLE.COM/SITE/ESTDATJIQ/HOME/UNIDAD-VI

HTTP://MACABREMOON0.TRIPOD.COM/ID2.HTML

HTTPS://ES.WIKIPEDIA.ORG/WIKI/ALGORITMO_DE_B%C3%BASQUEDA

Página 10 de 10