~ g(n) exists and is equal to some number c > O. Then f(n) = ®(g(n)). Proof. ). Since lira f(n) n-+oo g(n) = c > 0, it follows from the definition of a limit that there is some no beyond which the ratio is always between ½c and 2c. Thus, f(n) < 2cg(n) for all n >_ no, which implies that f(n) = O(g(n)); and [(n) >_ ½cg(n) for all n >_ no, which implies that [(n) = ~(g(n)).
First, getting such a precise bound may be an exhausting activity, and more detail than we wanted anyway. Second, because our ultimate goal is to identify broad classes of algorithms that have similar behavior, we’d actually like to classify running times at a coarser level of granularity so that similarities among different algorithms, and among different problems, show up more clearly. And finally, extremely detailed statements about the number of steps an algorithm executes are often--in a strong sense--meaningless.
Algorithm Design by Jon Kleinberg, Éva Tardos