How do you search a rotated sorted array, and what makes the logarithmic version possible?
The array was sorted and then rotated, so it consists of two sorted runs with a break somewhere in the middle. At each step of a binary search you can determine which half is sorted by comparing the first element of the interval with the midpoint. Once you know which half is in order, you can decide whether the target lies inside it, and you keep only that half.
The step by step reasoning is: if the midpoint equals the target, you are done. Otherwise, check whether the left half is sorted, which it is when the value at low is less than or equal to the value at mid. If it is sorted, the target either falls inside that half, in which case you narrow to it, or it falls beyond it, in which case you narrow to the other half. If the left half is the broken one, then the right half is sorted, and you apply the mirrored test.
The mechanism is that the sorted half behaves like an ordinary sorted array, so the standard comparison test applies inside it. That is what preserves the halving. A linear search through the whole array would also find the answer, but it throws away the structure that makes the problem interesting.
The trade-off to name is that the rotated version costs logarithmic time and constant space, while the brute force costs linear time and no extra space. The complication worth raising is duplicates. If the interval endpoints are equal you cannot tell which half is sorted, and the standard fix is to shrink one end, which makes the worst case quadratic for arrays made entirely of one repeated value. Interviewers often follow up with exactly that case, so it is worth having the answer ready.