Búsqueda lineal o secuencial

El método de búsqueda secuencial consistes en ir comparando el elemento o criterio de búsqueda con cada uno de los elementos en el arreglo, esto se hace recorriendo el arreglo y deteniéndose en cada elemento y hacer la comparación, en caso de ser verdadera la comparación, guardar la posición el elemento o dato.


1.- Empezar con el primer elemento de la lista e inicializar la variable que servira de bandera.

2.- Efectuar la busqueda mientras hay elementos en la lista y el valor de la llave no se ha encontrado.

3.- Verificar si se encontro el elemento objeto de la busqueda.

4.- fin

Este es el método de búsqueda más lento, pero si nuestra información se encuentra completamente desordenada es el único que nos podrá ayudar a encontrar el dato que buscamos. El siguiente algoritmo ilustra un esquema de implementación del algoritmo de búsqueda secuencial:

for(i=j=0;i<N;i++)
   if(array[i]==elemento)
   {
     solucion[j]=i;
     j++;
   }

Este algoritmo se puede optimizar cuando el array está ordenado, en cuyo caso la condición de salida cambiaría a:

for(i=j=0;array[i]<=elemento;i++)

o cuando sólo interesa conocer la primera ocurrencia del elemento en el array:

for(i=0;i<N;i++)
  if(array[i]==elemento)
    break;

En este último caso, cuando sólo interesa la primera posición, se puede utilizar un centinela, esto es, dar a la posición siguiente al último elemento de array el valor del elemento, para estar seguro de que se encuentra el elemento, y no tener que comprobar a cada paso si seguimos buscando dentro de los límites del array:

array[N]=elemento;
for(i=0;;i++)
  if(array[i]==elemento)
    break;

Si al acabar el bucle, i vale N esto indica que no se encontró el elemento. El número medio de comparaciones que hay que hacer antes de encontrar el elemento buscado es de (N+1)/2.

Deja un comentario