*I don't believe it is possible to code a search over sorted data with duplicates that comes even close to be O(log N). Even in theory.*

You're wrong. You can easily find the smallest index containing your target value by using a condition like:

`return $i if $A[$i] == $target && ($i == 0 || $A[$i-1] < $target);
`

instead of the usual

`return $i if $A[$i] == $target;
`

And you find the highest index by using:

`return $i if $A[$i] == $target && ($i == $#A || $A[$i+1] > $target);
`

It doesn't increase the run time complexity - the worst case of a binary search is when no match is found anyway.

Comment onRe^4: Modified Binary SearchSelectorDownloadCode