|
|
|
|
|
public static int BinSearch( int x, int[] A, int low, int high )
{
int middle;
int mySol;
if ( low > high )
{
/* ------------------------------------------------------
Solve the base case:
------------------------------------------------------ */
return( -1 ); // Not found
}
else
{
/* ------------------------------------------------
Solve a non-trivial binary search
------------------------------------------------ */
middle = (low + high)/2;
if ( x == A[middle] )
{
mySol = middle; // Found x, return location in array
}
else if ( x < A[middle] )
{
mySol = BinSearch( x, A, low, middle−1 ); // Solve smaller problem
}
else // x > A[middle]
{
mySol = BinSearch( x, A, middle+1, high ); // Solve smaller problem
}
return ( mySol );
}
}
|
How to run the program:
|