Binary Search in Java

Binary Search in Java is used to search an element from an array. Programmers opt for Binary search over linear search when it comes to large numbers. It can be done either recursively or iteratively. The program checks the entered value with the middle element of the array. If they match the algorithm stops and position is returned. If it does not match than we have two cases.

Binary Search in Java

Binary Search in Java is used to search an element from an array. Programmers opt for Binary search over linear search when it comes to large numbers. It can be done either recursively or iteratively. The program checks the entered value with the middle element of the array. If they match the algorithm stops and position is returned. If it does not match than we have two cases.

Binary Search in Java


Binary Search in Java is used to search an element from an array. Programmers opt for Binary search over linear search when it comes to large numbers. It can be done either recursively or iteratively.

The program checks the entered value with the middle element of the array. If they match the algorithm stops and position is returned. If it does not match than we have two cases:

  1. If the entered value is less than the middle element then the process is repeated to the left of middle element.
  2. If the entered value is greater than the middle element then the process is repeated to the right of middle element.

This is continued until the searched element is found or it is not found. In the case when the searched element is not found the program returns the answer "Not Found".

Following is the example of Binary Search in Java:

import java.util.*;

public class BinarySearch {
        public static void main(String[] args) {
                int[] intArray = new int[10];
                int searchValue = 0, index;
                System.out.println("Enter 10 numbers");
                Scanner input = new Scanner(System.in);
                for (int i = 0; i < intArray.length; i++) {
                        intArray[i] = input.nextInt();
                }
                System.out.print("Enter a number to search for: ");
                searchValue = input.nextInt();
                index = binarySearch(intArray, searchValue);
                if (index != -1) {
                        System.out.println("Found at index: " + index);
                } else {
                        System.out.println("Not Found");
                }
        }

        static int binarySearch(int[] search, int find) {
                int start, end, midPt;
                start = 0;
                end = search.length - 1;
                while (start <= end) {
                        midPt = (start + end) / 2;
                        if (search[midPt] == find) {
                                return midPt;
                        } else if (search[midPt] < find) {
                                start = midPt + 1;
                        } else {
                                end = midPt - 1;
                        }
                }
                return -1;
        }
}

Output

Enter 10 numbers:

1
2
3
4
5
6
7
8
9
10

Enter a number to search for: 5

Found at index: 4