Searching a collection with in $O(\log n)$ time requires that the items have some interrelation that allows the search routine to infer details about items it hasn't checked. In a sorted array, a binary search is able to skip visiting any item beyond or before the halfway point as those items will always be above or below the current item in ordinality. This same concept can be extended to more complex structures and less obvious details. The only overlap is that the position of items in the structure must convey some insight about items contents.