class BinarySearch { /* * Assumes the data array is sorted in increasing order (and all elements are distinct) * Returns the index of query in data if it is between startIndex and endIndex inclusive * else returns -1 */ static int search(int[] data, int query, int startIndex, int endIndex) { if (endIndex=startIndex and midIndex<=endIndex, because startIndex<=endIndex if(endIndex==startIndex) { if (query == data[startIndex]) return startIndex; else return -1; } if (query == data[midIndex]) return midIndex; else if (querystartIndex, so we are calling on a smaller array } public static void main(String[] args) { int [] data={3, 5, 7, 9, 11}; System.out.println(search(data, 4, 0, data.length-1)); } }