Continuando con los métodos de búsqueda, seguimos con la búsqueda binaria. Este método es el que habitualmente utilizamos los humanos para encontrar un determinado elemento en una lista previamente ordenada.
El algoritmo es el siguiente:
- Se compara el valor buscado con el del elemento central del vector
- Si coinciden, se ha encontrado el numero y se finaliza la búsqueda.
- Si no coinciden, se determina si el valor buscado debe estar en la mitad izquierda o derecha del vector, dependiendo de si es inferior o superior, respectivamente, del elemento central.
La posición del elemento central del vector es calculado con la siguiente formula:
pMitad = int((pInicial + pFinal)/2)
Donde pInicial y pFinal son las posiciones inicial y final del subVector que se está considerando.
- En la mitad donde se deba continuar la búsqueda, se continua de la misma manera, es decir; se compara el valor buscado con el elemento central de esa mitad.
- Si coinciden, se ha encontrado el numero y se finaliza la búsqueda.
- Si no coinciden, se determinaen cúal de las dos mitades de esta subMitad debe estar el valor buscado.
- Se continua de este modo (dividiendo el vector en subMitades) hasta que la búsqueda:
- Finalice con exito (se encuentre el elemento)
- Se finalice sin exito (no se encontro el elemento)
- Cuando pInicial sea mayor o igual a pFinal y su contenido sea diferente del valor buscado, entonces se considera que el valor buscado no existe en el vector.
Aquí está el código en VB.Net
(continue reading…)
