Buscar un elemento dentro de un vector

Algoritmo para encontrar la posición de un elemento en un vector

A continuación se muestra una función muy sencilla y útil en la que dado un vector (array) y un elemento a buscar, si lo encuentra nos devuelve la posición en la que está, sino nos devuelve -1.

Function BuscarElemento(ByRef vector As Integer(), ByVal valor As Integer)
    Dim encontrado As Boolean = False
    Dim posicion As Integer = -1
    Dim i As Integer = 0
    While Not encontrado And i < vector.Length
        If vector(i) = valor Then
            posicion = 1
            encontrado = True
        End If
        i = i + 1
    End While
    Return posicion
End Function

El algoritmo recorre el vector empezando desde la posición 0 hasta la última posición. En caso de que encuentre el valor saldrá del bucle directamente, sin tener que acceder a cada posición.

Aunque el código esté escrito en VB.NET el algoritmo es igualmente válido para la gran mayoría de lenguajes de programación

Ejemplo de Uso

En este ejemplo se supone que se tiene un vector de enteros y que se quiere buscar el primer elemento del vector que contiene un 10.

Dim posicion As Integer = BuscarElemento(vector,10)

if (posicion <> -1) then
    'encontrado
    vector(posicion) = vector(posicion) + 1
else
    'no encontrado
end if