Here is one of my interview question. Given an array of N elements and where an element appears exactly N/2 times and the rest N/2 elements are unique>
It's fairly simple to see that no O(log n) algorithm exists. Clearly you have to look at the array elements to figure out which is the repeated element, but no matter what order you choose to look at the elements, the first floor(n/2) elements you look at might all be unique. You could simply be unlucky. If that happened, you would have no way of knowing which was the repeated element. Since no algorithm that uses less than floor(n/2) array references or fewer on every run will work, there is definitely no sub-linear algorithm.