Un tema importante en la estructura de datos, es la búsqueda de estos. Muchas veces se pueden tener cantidades enormes de datos y su manipulación se vuelve cada vez mas complicada y tardada, es por esto que los métodos de búsquedas deben ser bastante eficaces para poder encontrar un dato especifico dentro de una gran cantidad de datos y en el menor tiempo posible.

Este método de búsqueda (secuencial) es sin duda el más sencillo y recomendable cuando tienes una cantidad de datos mínima, ya que es muy fácil de programar. La desventaja es que no es recomendable para bucar algun dato dentro de una cantidad muy grande de datos ya que su desempeño sería bastante lento.

El algoritmo es el siguiente:

Se toma el elemento a buscar y se compara con cada una de las posiciones del vector donde esta el conjunto de datos.
Esto se hace dentro de un ciclo el cual dejará de girar cuando se encuentre un numero igualal buscado o cuando se termine el vector.
Sí no se encontró el numero buscado, se envía un mensaje indicando que el elemento buscado no fue encontrado, de lo contrario haces lo que tu decidas con el elemento encontrado.

He aquí el diagrama de flujo:

Y aquí está el codigo en VB.Net

VB.NET:
  1. Public Class Form1
  2.     Dim vec(999) As Integer
  3.     Dim a As Integer
  4.  
  5.     Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  6.         Dim rand As New Random
  7.         Dim cad As String = ""
  8.  
  9.         For a = 0 To 999         'generamos un vector de 1000 elementos con numeros aleatorios
  10.             vec(a) = rand.Next(0, 4000)
  11.             cad &= vec(a) & vbNewLine  'almacenamos en una cadena ese vector para imprimirlo en un cuadro de texto
  12.         Next
  13.  
  14.         txt.Text = cad 'imprimimos el vector en un cuadro de texto
  15.     End Sub
  16.  
  17.     Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
  18.         Dim n As Integer = txtn.Text
  19.         r.Text = ""
  20.         a = 0
  21.         While (a <vec.Length)  'mientras NO llegue al final del vector
  22.             If (vec(a) = n) Then   'el elemento buscado es igual al elemento del vector en la posicion del incrementador?
  23.                 r.Text = vec(a) & " esta en la posicion " & a   'imprimimos resultado
  24.                 a = vec.Length  'a la variable incrementador le asignamos el largo del vector para provocar la salida del ciclo
  25.             Else
  26.                 a += 1
  27.             End If
  28.         End While
  29.  
  30.         If r.Text.Length = 0 Then r.Text = "# no encontrado"  'si salimos del ciclo y aun no habíamos mostrado mensaje de "# encontrado" significa que no se encontró el elemento buscado
  31.  
  32.     End Sub
  33. End Class

Aquí te dejo el archivo completo para que te lo descargues ;)

Descarga

Fuente del algoritmo