How to code binary search in Java? I want to search a number in an array.
Here's an example of how you can code a binary search algorithm in Java:
[code]
public int binarySearch(int[] arr, int target) {
    int left = 0;
    int right = arr.length - 1;
    while (left <= right) {
        int mid = (left + right) / 2;
        if (arr[mid] == target) {
            return mid;
        } else if (arr[mid] < target) {
            left = mid + 1;
        } else {
            right = mid - 1;
        }
    }
    return -1;
}
[/code]
In this implementation, the binary search algorithm takes an array of integers and the target value as input. It uses two pointers, left and right, to keep track of the current search interval. The algorithm repeatedly divides the search interval in half until it finds the target value or determines that it is not present. If the target value is found, the index at which it was found is returned. If the target value is not found, the function returns -1.

It's important to note that for this binary search algorithm to work, the input array must be sorted in ascending order.
Why must the input array must be sorted in ascending order?
Binary search works by assuming the array's middle contains the array's median value.
If it is not sorted, this assumption does not make sense since the median can be anywhere and cutting the array in half could mean that you cut off the number you were searching for.