1
I made a recursive binary search code in Java. It finds the positions correctly, except when the searched element occupies the last position of the vector. I don’t know how to fix this.
public static int binarySearchRecursivo(int array[],int x) {
return BinarySearchRec(array, x, 0, array.length-1);
}
public static int BinarySearchRec(int array[], int x, int inicio, int fim) {
int meio = (inicio+fim)/2;
if (inicio <= fim) {
if (array[meio]==x) {
return meio;
}
if (array[meio]<x) {
return BinarySearchRec(array, x, meio+1, fim);
}
else {
return BinarySearchRec(array, x, inicio, meio-1);
}
}
return -1;
}
// Driver method to test above
public static void main(String args[]) {
int arr[] = {2,3,5,6,7,9,12,33,66,55};
int x = 55;
int result = binarySearchRecursivo(arr,x);
if (result ==-1)
System.out.println("Elemento não está presente");
else
System.out.println("Elemento encontrado na posição " + result);
}
}