Ir al contenido principal

Búsqueda en Vectores

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.

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-mientras 
fin-si

si (Encontrado) entonces 
     retorno ( Indice) 
si no 
     retorno (-1) 
fin-si

Fin

Comentarios

Entradas más populares de este blog

Contenidos

A continuación se listan los contenidos a desarrollar en el presente Blog: Introducción. Conceptos Básicos. Tipos de Representación de Estructuras de Datos en Memoria. Arreglos(Vectores y Matrices). Archivos. Listas Encadenadas. Filas. Pilas. Arboles Binarios. Grafos. Se utilizara para codificar las estructuras de datos se utilizara el lenguaje de programación Java con el IDE NetBeans y Visual Studio 2013 con Visual C++ en aplicaciones MFC basadas en cuadros de dialogo. Puedes descargar NetBeans aquí .