It's hard to count precisely!

If you have worked on the two previous exercises, you know it can be tedious and difficult to work out precisely the exact number of RAM instructions executed by a program/algorithm. Moreover, it often requires detailed information about any function/method called by the program.

It proves to be much easier to describe running time of algorithms in terms of upper and lower bounds.

In the next chapter, we will introduce the Big Oh notation which greatly simplifies our analysis by ignoring levels of details that do not impact the performance of an algorithm when the input size gets arbitrary large.