Advertisement
steverobinson

Binary Search

Aug 5th, 2011
152
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.34 KB | None | 0 0
  1. import java.util.Scanner;
  2.  
  3. /**
  4. *Program to perform Binary Search
  5. *@author Steve Robinson
  6. *@see footyntech.wordpress.com
  7. */
  8.  
  9. class BinarySearch
  10. {
  11.     public static void main(String arg[])
  12.     {
  13.         Scanner in=new Scanner(System.in);
  14.         int key,loc;
  15.         char ch;
  16.        
  17.         System.out.print("Enter the number of elements of the List: ");
  18.         int len=in.nextInt();
  19.         int[]array=new int[len];
  20.        
  21.         System.out.println("Enter the elements in \"ascending order only\"....");
  22.         for(int i=0;i<len;i++)
  23.         {
  24.             System.out.println("Element "+(i+1)+": ");
  25.             array[i]=in.nextInt();
  26.         }
  27.         do
  28.         {
  29.             System.out.print("Enter the element to search for: ");
  30.             key=in.nextInt();
  31.             loc=binarySearch(array,key,0,len-1);
  32.             if(loc!=-1)
  33.                 System.out.println("Element found at location "+(loc+1));
  34.             else
  35.                 System.out.println("Element not found!");
  36.        
  37.             System.out.print("Do another search? [y/n]  ");
  38.             ch=in.next().charAt(0);
  39.            
  40.         }while(ch=='y'||ch=='Y');  
  41.     }
  42.    
  43.     static int binarySearch(int[] array,int key,int start,int end)
  44.     {
  45.         if(start==end)
  46.         {
  47.             if(array[start]==key)
  48.                 return start;
  49.             else
  50.                 return -1;
  51.         }
  52.         else
  53.         {  
  54.             int mid=(start+end)/2;
  55.            
  56.             if(array[mid]==key)
  57.                 return mid;
  58.             else if(array[mid]>key)
  59.                 return binarySearch(array,key,start,mid);
  60.             else
  61.                 return binarySearch(array,key,mid+1,end);
  62.         }
  63.     }
  64.            
  65. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement