La búsqueda de un elemento dado en un arreglos (vector o matriz) es una aplicación muy usual en el desarrollo de programas, dos algoritmos típicos que realizan esta tarea son la búsqueda secuencial o en serie y la búsqueda binaria o dicotómica. La búsqueda secuencial es el método utilizado para listas no ordenadas, mientras que la búsqueda binaria se utiliza en arreglos que ya están ordenados.
1. Búsqueda Secuencial. En este método se deben recorrer las posiciones del vector hasta encontrar el valor o hasta alcanzar el ultimo elemento de éste, a continuación encontramos un algoritmo con el cual podremos implementar este tipo de búsqueda.
elemento = valor a buscar.
V = vector sobre el cual se realizará la búsqueda.
elemento = valor a buscar.
V = vector sobre el cual se realizará la búsqueda.
inicio
Poner Encontrado = falso
Poner Indice = primer indice del array
mientras (Elemento no Encontrado) y (Indice < Ultimo) hacer
si (V[indice] = Elemento) entonces
Poner Encontrado a Verdadero
si no
Incrementar Indice
fin-mientras
si (Encontrado) entonces
retorno ( Indice)
si no
retorno (-1)
fin-si
Fin
2. Búsqueda Binaria. En el caso de la búsqueda binaria tenemos mas condiciones para detener la búsqueda debido a que los elementos del vector ya se encuentran ordenados, por ejemplo si el vector se encuentra ordenado de manera ascendente, si el valor buscado es menor al primer elemento del vector o si es mayor al ultimo elemento del vector, la búsqueda no debe realizarse, si la búsqueda se lleva a cabo al encontrar que el valor a buscar es mayor al valor en la posición que verificamos, se debe finalizar la búsqueda.
En caso que el vector se encuentre ordenado de forma ascendente tenemos:
inicio
Poner Encontrado = falso
Poner Indice = primer indice del array
si (Elemento > V[primera posición]) o (Elemento < V[Ultima posición])
mientras (Elemento no Encontrado) y (Indice < Ultimo) y (Elemento <V[indice]) hacer
si (V[indice] = Elemento) entonces
Poner Encontrado a Verdadero
si no
Incrementar Indice
fin-si
fin-si
fin-mientras
fin-si
si (Encontrado) entonces
retorno ( Indice)
si no
retorno (-1)
fin-si
Fin
Comentarios
Publicar un comentario