lUsing exact running time to measure an algorithm requires calibration based
on the type of machine, clock rate, etc.
lInstead, we usually just count steps taken in the algorithm.
lOften we will assume primitives take one step each.
lThis is usually enough to give us an accurate view of the growth rate of
running time.