Java Program To Perform Binary Search

01. Example:

import java.util.Scanner;

class BinarySearch {
  public static void main(String args[]) {
    
    Scanner in = new Scanner(System.in);
    System.out.println("Enter number of elements in the array: ");
    int numberOfElements = in.nextInt();
    int[] array = new int[numberOfElements];
    
    System.out.println("Enter " + numberOfElements + " integers: ");
    for (int i = 0; i < numberOfElements; i++){
      array[i] = in.nextInt();
    }
    
    System.out.println("Enter value to find: ");
    int searchValue = in.nextInt();
    
    int firstIndex = 0;
    int lastIndex = numberOfElements - 1;
    int middleIndex = (firstIndex + lastIndex) / 2;
    
    while (firstIndex <= lastIndex) {
      if (array[middleIndex] < searchValue){
        firstIndex = middleIndex + 1;
      }
      else if (array[middleIndex] == searchValue) {
        System.out.println(searchValue + " found at location " + (middleIndex + 1) +".");
        break;
      } 
      else{
        lastIndex = middleIndex - 1;
      }  
      middleIndex = (firstIndex + lastIndex) / 2;
    }
    
    if (firstIndex > lastIndex){
      System.out.println(searchValue + " is not in the list.");
    }
  }
}

Output:

Enter number of elements in the array: 11
Enter 11 integers: 89 90 34 45 17 54 67 23 65 23 78
Enter value to find: 45
45 found at location 4.

Leave a comment