How would you design a search algorithm to find elements in a large, sorted dataset with the lowest possible time complexity?