Algoritmo de busqueda
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 registrocorrespondiente a cierta persona en una base de datos, o la mejor movida en una partida de ajedrez.
La variante más simple del problema es la búsqueda de un número en un vector.
Búsqueda secuencial
Seutiliza 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 array hastaencontrarlo, 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 array. Acontinuació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.
dato: elemento que se quiere buscar.
Variables
pos: posición actual enel array
pos = 0
Mientras pos < tam:
Si vec[pos] == dato devolver verdadero y/o pos, de lo contrario:
pos = pos+ 1
Fin (Mientras)
Devolver falso
Búsqueda binaria (dicotómica)
Se utiliza cuando el vector en el que queremos determinar la existencia de unelemento 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 parabuscar 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...
Regístrate para leer el documento completo.