At each failure of comparison, a recursive call is made of of size n/2. Size of each subarray needs to be stored in the activation record of stack. Other wise there is no way of calculating middle element for comparison with the required element. So compulsory stack is needed.
And assuming this statement "Space Complexity refers to the magnitude of auxiliary space your program takes to process the input. That is after main() how much extra space it is taking" to be true, then space complexity will be O(logn).
But my doubt is only about your statement for space complexity. Can you please provide the authenticity of you statement. Any resource, web link, snapshot , anything , so that my doubt will b cleared forever. Thanks in advance