Big-O - это набор, который включает в себя все, что работает так же быстро, как (foo) или быстрее. Little-O - это набор вещей, которые работают строго быстрее, чем (foo). Хотя правильно сказать, что mergesort это O (n ^ 4), это не очень полезно, потому что это Theta (n log n). Утверждение, что mergesort равен o (n ^ 4), немного более полезно, потому что нотация о-о никогда не используется для обозначения времени выполнения с большой тэтой.
Еще больше усложняя ситуацию, big-O часто используется, когда более подходящим является big-theta, просто потому, что у большинства клавиатур нет theta.