Saturday 6 August 2011

Binary Search in an array

import java.util.Arrays;
import java.util.Scanner;
public class BinarySearch
{
// precondition: array a[] is sorted
public int search(int[] a,int key)
{
int lo = 0;
int hi = a.length - 1;
while (lo <= hi)
{
// Key is in a[lo..hi] or not present.
int mid = lo + (hi - lo) / 2;
if (key < a[mid])
hi = mid - 1;
else if (key > a[mid])
lo = mid + 1;
else return mid;
}
return -1;
}
public static void main(String[] args)
{
int arr[] = new int[10];
System.out.println("Enter 10 numbers");
Scanner input = new Scanner(System.in);
for (int i = 0; i < arr.length; i++)
{
arr[i] = input.nextInt();
}
BinarySearch search = new BinarySearch();
System.out.print("Enter the element to search: ");
int num=input.nextInt();
int n = search.find(arr, num);
if (n!=-1 )
{
System.out.println("Found at index: " + n);
}
else
{
System.out.println("Not Found");
}
}

}

No comments:

Post a Comment