Implement binary search recursively. Binary search finds a target in a sorted array by repeatedly halving the search space.
Your function takes a sorted array and target value. Return the index if found, −1 if not.
Requirements:
- Compare target to middle element
- If equal, return the index
- If target is smaller, search left half
- If target is larger, search right half
- Base case: empty range means not found
Example: In [1,3,5,7,9], finding 7: check middle (5), go right, check middle (7), found at index 3.