Binary search in java

2 posts / 0 new
Last post
heartin
Binary search in java

Write a program to search an element from an array using Binary Search?

Additional Info

Please try to do it iteratively and recursively.

Please try to include the algorithm you used as well.

Hint: For doing binary search, the array should be already sorted.

Tags: 
Was it useful?
sneha
Binary Search Program

package com.javajee.myBinarySearch;

public class BinarySearch {

    int [] Numbers= {1,2,3,4,5,6,7};
    int element=7;
    String result=null;
    
    public static void main(String[] args) {
        String rIndex;
        String iIndex;
        BinarySearch bl= new BinarySearch();
        
        int minIndex=0;
        int maxIndex=(bl.Numbers.length)-1;    
        //calling recursive search algorithm
        rIndex=bl.elemSearchRecurse(bl.Numbers,minIndex, maxIndex);
        //Calling iterative algorithm
        iIndex=bl.elemSearchIter(bl.Numbers, minIndex, maxIndex);
        System.out.println(rIndex);
        System.out.println(iIndex);
    }
    
    //Using Recursive algorithm
    
    public String elemSearchRecurse(int[] Array,int min, int max){
        
        if (max<min){
            result="value not found";            
        }
        else{
        int midIndex=midValueCalc(min, max);
        if(Array[midIndex]>element){
            elemSearchRecurse(Numbers, min, midIndex-1);
        }
        else if(Array[midIndex]<element){
            elemSearchRecurse(Numbers, midIndex+1, max);
        }
        else{
            result="index of element in recursive algorithm is"+midIndex;
        }
        }
        return result;
    }
    
    //Using Iterative algorithm
    
    public String elemSearchIter(int[] Array,int min, int max){
        String value=null;
        while(max>=min){
            int midIndex=midValueCalc(min, max);
            if (Array[midIndex]>element){
                max=midIndex-1;
            }
            else if(Array[midIndex]<element){
                min=midIndex+1;
            }
            else{
                value="Index of element found through iterative is"+midIndex;
                return value;
            }
        }
        
        return "ELEMENT NOT FOUND";
    }
    
    //mid index calculator
    
    public int midValueCalc(int min, int max){
        return (min+((max-min)/2));
    }
}
 

NOTE:

Binary search returns the index of searched element as result.

Element to be searched is compared with value of the middle element (mid) of the array.

if element=middle element, then index of middle element is returned as result.

if element < middle element, process continues with elements on the left side of the array. (sub array to the left)

if element > middle element, process continues with elements on the left side of the array. (sub array to the right)

This process continues until all elements are compared or when a match is found.

It can be done both recursively and iteratively.

Was it useful?

Quick Notes Finder Tags

Activities (1) advanced java (1) agile (3) App Servers (6) archived notes (2) Arrays (1) Best Practices (12) Best Practices (Design) (3) Best Practices (Java) (7) Best Practices (Java EE) (1) BigData (3) Chars & Encodings (6) coding problems (2) Collections (15) contests (3) Core Java (All) (55) course plan (2) Database (12) Design patterns (8) dev tools (3) downloads (2) eclipse (9) Essentials (1) examples (14) Exception (1) Exceptions (4) Exercise (1) exercises (6) Getting Started (18) Groovy (2) hadoop (4) hibernate (77) hibernate interview questions (6) History (1) Hot book (5) http monitoring (2) Inheritance (4) intellij (1) java 8 notes (4) Java 9 (1) Java Concepts (7) Java Core (9) java ee exercises (1) java ee interview questions (2) Java Elements (16) Java Environment (1) Java Features (4) java interview points (4) java interview questions (4) javajee initiatives (1) javajee thoughts (3) Java Performance (6) Java Programmer 1 (11) Java Programmer 2 (7) Javascript Frameworks (1) Java SE Professional (1) JPA 1 - Module (6) JPA 1 - Modules (1) JSP (1) Legacy Java (1) linked list (3) maven (1) Multithreading (16) NFR (1) No SQL (1) Object Oriented (9) OCPJP (4) OCPWCD (1) OOAD (3) Operators (4) Overloading (2) Overriding (2) Overviews (1) policies (1) programming (1) Quartz Scheduler (1) Quizzes (17) RabbitMQ (1) references (2) restful web service (3) Searching (1) security (10) Servlets (8) Servlets and JSP (31) Site Usage Guidelines (1) Sorting (1) source code management (1) spring (4) spring boot (3) Spring Examples (1) Spring Features (1) spring jpa (1) Stack (1) Streams & IO (3) Strings (11) SW Developer Tools (2) testing (1) troubleshooting (1) user interface (1) vxml (8) web services (1) Web Technologies (1) Web Technology Books (1) youtube (1)