public class BinarySearch {


   
static void main() {
       
binarySearch(new int[] {34, 52, 85, 26, 75, 24, 68}, 75) ;
    }

   
static int binarySearch(int[] arr, int target) {
       
int left = 0, right = arr.length - 1;
       
arr = Arrays.stream(arr).sorted().toArray();
       
for (int num : arr) {
           
System.out.print(num + " ");
        }
       
System.out.println();
       
while (left <= right) {
           
int mid = left + (right - left) / 2; // Avoid overflow
           
System.out.println("left=" + left + " mid=" + mid + " right=" + right + " midValue=" + arr[mid]); // DEBUG
           
if (arr[mid] == target) return mid;
           
else if (arr[mid] < target) left = mid + 1;
           
else right = mid - 1;
        }
       
System.out.println("Not found! Target: " + target); // DEBUG
       
return -1;
    }

}

 

24 26 34 52 68 75 85

left=0 mid=3 right=6 midValue=52

left=4 mid=5 right=6 midValue=75

 

 

24 26 34 52 68 75 85

left=0 mid=3 right=6 midValue=52

left=0 mid=1 right=2 midValue=26

left=2 mid=2 right=2 midValue=34