 # Java Program to Implement Binary Search Algorithm

In this example, we will learn to implement binary search algorithm in Java.

To understand this example, you should have the knowledge of the following Java programming topics:

## Example: Java Program to Implement Binary Search Algorithm

``````import java.util.Scanner;

// Binary Search in Java

class Main {
int binarySearch(int array[], int element, int low, int high) {

// Repeat until the pointers low and high meet each other
while (low <= high) {

// get index of mid element
int mid = low + (high - low) / 2;

// if element to be searched is the mid element
if (array[mid] == element)
return mid;

// if element is less than mid element
// search only the left side of mid
if (array[mid] < element)
low = mid + 1;

// if element is greater than mid element
// search only the right side of mid
else
high = mid - 1;
}

return -1;
}

public static void main(String args[]) {

// create an object of Main class
Main obj = new Main();

// create a sorted array
int[] array = { 3, 4, 5, 6, 7, 8, 9 };
int n = array.length;

// get input from user for element to be searched
Scanner input = new Scanner(System.in);

System.out.println("Enter element to be searched:");

// element to be searched
int element = input.nextInt();
input.close();

// call the binary search method
// pass arguments: array, element, index of first and last element
int result = obj.binarySearch(array, element, 0, n - 1);
if (result == -1)
else
System.out.println("Element found at index " + result);
}
}``````

Output 1

```Enter element to be searched:
6
Element found at index 3```

Here, we have used the Java Scanner Class to take input from the user. Based on the input from user, we used the binary search to check if the element is present in the array.

We can also use the recursive call to perform the same task.

``````  int binarySearch(int array[], int element, int low, int high) {

if (high >= low) {
int mid = low + (high - low) / 2;

// check if mid element is searched element
if (array[mid] == element)
return mid;

// Search the left half of mid
if (array[mid] > element)
return binarySearch(array, element, low, mid - 1);

// Search the right half of mid
return binarySearch(array, element, mid + 1, high);
}

return -1;
}``````

Here, the method `binarySearch()` is calling itself until the element is found or, the `if` condition fails.