Recap

Algorithm Efficiency: how an algorithm utilizes resources, namely the amount of time it uses.

Random Access Machine or RAM: a hypothetical computer where there is infinite memory, and memory access is for free. All basic operations take one step. Loops/functions are the composition of many single-step operations.

Algorithm Runtime: the number of (RAM) steps as a function of input size. We consider worst-case analysis unless specified otherwise.

It can be difficult to precisely work out the exact number of RAM instructions executed by a program.

We will now introduce the Big Oh (a.k.a Big O) notation which allows us to describe the growth rate of functions. This notion makes it easier to compare running time of algorithms without having to precisely know their exact running time.