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)
System.out.println("Not found");
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.
If you want to learn more about the binary search algorithm, visit Binary Search Algorithm.