In the case of C++ it is often noted by library writers that simple implementations often beat their most complex efforts in the real world: between the compiler optimizing better, and simple algorithms leading to less CPU stalls because of a cache miss
In the real world O(n) is faster than O(log n) on all real data. (that is data that fits in RAM)