Binary search is an example of an algorithm that runs in logarithmic time. It runs in so fast because every step, the search space is chopped in half. The number of times to divide n by 2 before it is rounded down to 0 is log_2 n. Think about how you would quickly guess a number between 1 and 1000 by hearing bigger or smaller. Binary search provides a fast way of doing indexOf (see the big-Oh notes) if the array is sorted. We'll implement it recursively. public int bsearch(int[] arr, int val) { return bsearch(arr,val,0,arr.length-1); } int bsearch(int[] arr, int val, int lo, int hi) { if (hi