The Binary Search algorithm works by testing a mid-point, then eliminating half of the list.
In this exercise, you are going to take our binary search algorithm and add print statements so that you can track how the search executes.
Inside of the recursive binary search function, add print statements to print out the starting, ending, and midpoint values each time.
Then as you test a value, print out the results, either too high, too low, or a match.
Sample Output
Starting value: 0
Ending value: 9
Testing midpoint value: 4 Too high!
Starting value: 0
Ending value: 3
Testing midpoint value: 1 Too low!
Starting value: 2
Ending value: 3
Testing midpoint value: 2 Match!
public class BinaryExplorer {
public static void main(String[] args) {
int[] testArray = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
binaryRec(testArray, 8, 0, testArray.length - 1);
}
/**
* Add Print statements to the binaryRec method:
*
* Print Starting, ending, and midpoint values.
*
* Print when you find a match
*
* Print if you are too high or too low.
*
**/
public static int binaryRec(int[] array, int target, int begin, int end) {
if (begin <=>=>
{
int mid = (begin + end) / 2;
// Base Case
if (target == array[mid]) {
return mid;
}
if (target < array[mid])="">
return binaryRec(array, target, begin, mid - 1);
}
if (target > array[mid]) {
return binaryRec(array, target, mid + 1, end);
}
}
return -1; //Alternate Base Case - not found
}
}