La definición mas simple que podemos encontrar para este problema es la búsqueda de un numero dentro de un vector o arreglo.
Las características para poder implementar este algoritmo son las siguientes:
- Los datos deben estar contenido en un estructura de datos tipo vector
- Los datos del vector deben estar ordenados
Imagen que demuestra el funcionamiento de la búsqueda binaria.
Pseudocódigo:
Entrada:
vec: es el vector de donde se va a buscar el número deseado.
n: viene siendo el tamaño del vector, los sub-indices van desde 0 a n-1.
com: componente que se desea buscar.
Variables:
cent: sub-indice central de nuestro intervalo.
inf: limite inferior de nuestro intervalo.
sup: limite superior de nuestro intervalo.
inf = 0
sup = n - 1
Mientras inf <= sup:
cent = ((sup - inf) / 2) + inf // División: para partir la búsqueda de la mitad del vector
Si ven[cent] == com devolver: verdadero, de lo contrario:
Si com < vec[cent] entonces:
sup = cent - 1
en caso contrario:
inf = cent + 1
Fin (mientras)
devolver falso
Si consideran que le entenderían mejor con números o les gustaría ver un ejemplo explicado con números les dejare la dirección de una pagina que encontré, esta en ingles pero no tiene mucho chiste, le pueden entender a lo que dice.
Bueno eso seria todo por esta entrada, espero les sirva de ayuda, como verán es breve, así es mejor para un mejor entendimiento, ademas de fácil y cómodo de leer.
Referencias:
Bien; 5 puntos.
ResponderEliminar