我正在尝试用Java实现二进制搜索,不起作用...不知道为什么,它总是给我一个错误,指出找不到该数字...

我不确定为什么,我没有看到任何错误:S感谢您的帮助...

public void busquedaBinaria(int[] arreglo, int buscar) {

        int centro = 0; //middle
        int inferior = 0;
        int superior = arreglo.length - 1;
        boolean encontrado = false; //found flag

        while(inferior <= superior)
        {
            centro = (superior + inferior) / 2;

              if (arreglo[centro] == buscar){
                  System.out.println("-Number " + buscar + " found in the " + centro + " position.");
                  encontrado=true;
                  break;
              }
              else if (arreglo[centro] > buscar) {
                  superior = centro - 1;
              }
              else{
                  inferior = centro + 1;
              }
              System.out.println(centro);
        }

        if (encontrado == false) {
            System.out.println("-Number " + buscar + " hasn't been found.");
        }
    }

最佳答案

您可以使用库中已经可用的Arrays#binarySearchCollections#binarySearch

关于java - Java中的二进制搜索,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12890065/

10-09 22:44