我正在尝试用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#binarySearch
或Collections#binarySearch
。
关于java - Java中的二进制搜索,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12890065/