Because you are usually just interested in the worst case when analyzing the performance. Thus, knowing the upper bound is sufficient. When it runs faster than expected for a given input – that is ok, it’s not the critical point. It’s mostly negligible information.
Some algorithms don’t have a tight bound at all. See quicksort for example which is O(n2)
and Omega(n)
. Moreover, tight bounds are often more difficult to compute.