Está en la página 1de 3

BUSQUEDA BINARIA

DEFINICIN:
El algoritmo de bsqueda binaria es un excelente mtodo para buscar datos dentro de una estructura (generalmente un arreglo unidimensional). Se le da el nombre de bsqueda binaria por que el algoritmo divide en dos el arreglo, aludiendo al concepto de bit, el cual puede tener dos estados. La nica condicin para usar este algoritmo es que los datos dentro del arreglo estn ordenados de menor a mayor.

ESTRUCTURA:
Supongamos que tenemos el arreglo {2, 3, 5, 7, 9, 11, 14, 18, 22, 25} y queremos buscar el dato 18, entonces el inferior toma el valor de 0 y superior el valor de 9 (ya que es tamao del arreglo menos 1). Calculamos el centro, centro = (superior + inferior) / 2 centro = (9 + 0) / 2 centro = 4 divisin entera (ignorando la parte decimal). Arreglo en la posicin centro es 9 (Arreglo [centro] = 9) ya que se empieza a contar desde 0. Comprobamos si arreglo en la posicin centro es igual al dato que queremos buscar Arreglo[centro] = dato, como Arreglo[centro] = 9 y dato = 18. No son iguales por lo tanto ahora verificamos si es mayor, en este caso no lo es entonces actualizamos inferior = centro + 1, esto hace que podamos descartar todos los datos del centro hacia atrs, esto reduce nuestro arreglo a {11, 14, 18, 22, 25}. Y as seguiremos hasta que Arreglo [centro] = dato.

Como se puede notar este mtodo es bastante eficiente en arreglos grandes, por ejemplo supongamos que tenemos un arreglo de 10000 datos, y estamos buscando un dato que se encuentra en la posicin 6000, solo en la primera vuelta del ciclo ya se pueden descartar los primeros 5000 valores, en cambio por fuerza bruta se tendran que realizar esos 6000 ciclos para poder localizar el dato.

FUNCIONAMIENTO:

El algoritmo de bsqueda binaria es el siguiente: 1. Se declaran los ndices superior e inferior. El inferior en 0 y el superior con el tamao del arreglo menos 1. 2. Se calcula el centro del arreglo con la siguiente frmula: centro = (superior + inferior) / 2 3. Verificamos si el arreglo en la posicin centro es igual al dato que buscamos. Si es igual significa que encontramos el dato y retornamos centro. 4. Si son diferentes verificamos si el arreglo en la posicin centro es mayor al dato que que queremos buscar. Si es mayor actualizamos superior: superior = centro - 1, si no actualizamos inferior: inferior = centro + 1. 5. Volvemos al paso 2.

También podría gustarte