import java.util.Arrays;
Demonstration of the classic Binary Search
@author
@version
public class BinarySearch{
Binary search - recursively looks for an item in a sorted array by
reducing the search space to half the previous search space.
@param a
@param item
@return
public static boolean binarySearch( int[] a, int item ){
return binarySearchRec( a, item, 0, a.length );
}
Binary search - recursively looks for an item in a sorted array by
reducing the search space to half the previous search space.
@param a
@param item
@param start
@param end
@return
public static boolean binarySearchRec( int[] a, int item, int start, int end ){
if( end <= start ){
return false;
}
int mid = (start + end) / 2;
if( a[mid] == item ){
return true;
}else if( item > a[mid] ){
int newStart = mid + 1;
return binarySearchRec( a, item, newStart, end );
}else{
int newEnd = mid;
return binarySearchRec( a, item, start, newEnd );
}
}
public static void main( String[] args ){
int[] array1 = {0,1,2,3,4,6,8,9};
int[] array2 = {0,0,1,2,3,3,4,6,8,9};
int search = 3;
int[] array = array1;
boolean result = false;
search = 3;
array = array1;
result = binarySearch( array, search );
System.out.println( "binarySearch( array="+Arrays.toString(array)+", search="+search+" ) returns "+result);
search = 7;
array = array1;
result = binarySearch( array, search );
System.out.println( "binarySearch( array="+Arrays.toString(array)+", search="+search+" ) returns "+result);
search = 3;
array = array2;
result = binarySearch( array, search );
System.out.println( "binarySearch( array="+Arrays.toString(array)+", search="+search+" ) returns "+result);
}
}