Consider some long called X and a sorted List<Long>. What is the most efficient algorithm to find the index or value in the List<Long> that is (i) less than X, and (ii) The closest to X on the number line (assuming condition (i) has been satsified)?
For example this could be a problem setup:
long X = 500;
List<Long> foo = new Arraylist<Long>();
Collections.sort(foo); // It's always sorted.
I would like the algorithm to either return 499 or to return the index associated with 499 (in this casei=2).