public class FunWithBinarySearch { public int find(int[] arr, int value) { // Perform a binary search on the array arr, looking for value. // This method should return the index of the arr the value is found. // Returns -1 if the value is not in the arr return binarySearch(arr, value, 0, arr.length-1); } public int binarySearch (int [ ] arr, int value, int left, int right) { if (right < left) return -1; // Not found int middle = (left + right) / 2; if (value == arr [middle] ) return middle; else if (value < arr[middle]) return binarySearch (arr, value, left, middle - 1); else // if ( value > arr[middle]) return binarySearch (arr, value, middle + 1, right); } }