Upper Bound Using Binary Search In Java