Q:

Write a Java Program for Binary Search on Unsorted Array

belongs to collection: Java Arrays Solved Programs

0

Java Program first ask to the user to enter “how many element he/she want to store in a array”, then ask to enter the array element one by one in any order in which they want”.

After storing the element in the array, following program again ask to the user to enter the element which he/she want to search in the array whether the entered element/number is present in the list or not.

The searching technique used here is binary search which is fast technique :

All Answers

need an explanation for this answer? contact us directly to get an explanation for this answer

SOURCE CODE ::

import java.util.Scanner;

public class BinarySearch {
    
    //----------------Function to Sort Array-------------------
    
    static int[] sorted(int arr[])
    {
        int l,max,temp;
        l=arr.length;
        for(int i=0;i<l;i++)
        {
            for(int j=i+1;j<l;j++)
            {
                if(arr[i]>arr[j])
                {
                    temp=arr[j];
                    arr[j]=arr[i];
                    arr[i]=temp;
                }
            }  
        }
        return arr;        
    }
    
    //------------function to search key in array-------------
    
    static int binarysearch(int a[],int key)
    {
        int beg,l,end,mid;
        l=a.length;
        beg=0;
        end=l-1;
        mid=(beg+end)/2;
        while(beg<=end)
        {
            if(a[mid]<key)
            {
                beg=mid+1;
                mid=(beg+end)/2;
            }

            else if(a[mid]==key)
            {
                break;
            }
            else
            {
                end=mid-1;
                mid=(beg+end)/2;
            }
        
                if(beg>end)
                {
                    mid=0;
                }
        
        }
        
        return mid;
    }
    

    public static void main(String[] args) {
     
        int i,n,b[],key,c;
        System.out.print("Enter size of array: ");
        Scanner sc = new Scanner(System.in);
        n=sc.nextInt();
        int a[]=new int[n];
        
        //---------Enter values to array-------------
        
        for(i=0;i<n;i++)
        {
           System.out.print(i+1 +" element : "); 
           a[i]=sc.nextInt();
        }
        System.out.print("");
        
        //-----------------Sort the array--------------------
        
        b=sorted(a);
        for(i=0;i<n;i++)
        {
           System.out.println(i+1 +" element : "+b[i]); 
          
        }
        
        //---------------Enter search key u want to find-----------
        
        System.out.println("Enter the number u want to search: ");
        
        key=sc.nextInt();
        
        c=binarysearch(b,key);
        
        if(c==0)
        {
            System.out.println("Sorry,Key doesn't exist in the array");
        }
        else
        {
            System.out.println("Position of element is : "+(c+1));
        }
                
    }
    
}
 
 

OUTPUT ::

 
Enter size of array: 6
1 element : 3
2 element : 6
3 element : 1
4 element : 8
5 element : 4
6 element : 0


Sorted Array
1 element : 0
2 element : 1
3 element : 3
4 element : 4
5 element : 6
6 element : 8

Enter the number u want to search: 
4
Position of element is : 4

need an explanation for this answer? contact us directly to get an explanation for this answer

total answers (1)

Write a Java Program to input and print n elements... >>