Logarithmic Runtime

In this lesson, we'll discuss when an algorithm can have a logarithmic runtime.

We'll cover the following...

Iterating powers of a number

Let’s analyze the loop below where we iterate over all powers of 22

for (int i = 1; i <= N; i *= 2)
    x++;
  • Iteration 11: i=1i=1
  • Iteration 22: i=2i=2
  • Iteration 33: i=4i=4
  • Iteration xx: i=2x1i=2^{x-1}

Let’s say the loop terminates after the jthj^{th} iteration, i.e.,

2j1<=N2^{j-1} <= N

j1<=logNj-1 <= logN

j<=logN+1j <= logN + 1

Hence, the loop runs (logN+1)(logN + 1) times.

In Big-O notation, the time complexity is O(logN)O(logN) ...