Home Java Javatutorial Binary Search in Java
Questions:Ask|Latest

 
 

Share on Google+Share on Google+

Binary Search in Java

Advertisement
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 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

Advertisement

If you enjoyed this post then why not add us on Google+? Add us to your Circles



Liked it!  Share this Tutorial


Follow us on Twitter, or add us on Facebook or Google Plus to keep you updated with the recent trends of Java and other open source platforms.

Posted on: May 3, 2013

Related Tutorials

Ask Questions?    Discuss: Binary Search in Java  

Post your Comment


Your Name (*) :
Your Email :
Subject (*):
Your Comment (*):
  Reload Image
 
 
Comments
DMCA.com