Búsqueda binaria en una colección de array

Disculpa el atrevimiento de escribirte pero me gustaría realizarte una consulta sobre una búsqueda binaria que estoy aplicando sobre una colección array. Mi aplicación consiste en llenar una colección Array con números aleatorios y ordeno los mismos antes de llamar al método de búsqueda pero no he logrado que me encuentre valores que si existen en la colección.
Mi método es el siguiente:
 public void busquedaBinaria(int x)
        {
            int bajo = 0;
            int alto = numeros.size() ;
            int central = (int) ((bajo + alto) / 2);
            boolean no_se_encontro = false;
            while((bajo < alto) && numeros.get(central) != x)
            {
                if (x < numeros.get(central))
                    alto = central - 1;
                else
                    bajo = central + 1;
                central = (int) ((bajo + alto) / 2);
                if(central == alto)
                {
                    no_se_encontro = true;
                    break;
                }
            }
            if(no_se_encontro = true)
            {
                System.out.println("Valor no encontrado");
                            }
            else
                System.out.println("Valor encontrado en posición " + central);
        }
Desde ya disculpa mi atrevimiento y espero que cuando tengas un tiempo le puedas pegar un vistazo.

1 respuesta

Respuesta
1
Ya he respondido una pregunta de búsqueda binaria antes, puedes chequear el código en esta respuesta, esta hecho para un vector, pero imagino que no tendrás problemas para la lista o la colección ya que es prácticamente lo mismo
http://www.todoexpertos.com/categorias/tecnologia-e-internet/programacion/java/respuestas/2783880/metodo-de-busqueda
Si tienes alguna duda puedes preguntarme.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas