Time Complexity

Go to Problems

Relevance of time complexity

Lets assume we ask 2 interviewees A and Bto write a program to detect if a number N >= 2 is prime.

A number is prime if it is divisible by exactly 2 distinct positive numbers 1 and the number itself. 
https://www.mathsisfun.com/prime-composite-number.html

A comes up with the following code :

 i = 2 
 while i < N
   if N is divisible by i
      N is not prime
   add 1 to i   

B comes up with the following code :

i = 2
while i <= square root of N
  if N is divisible by i 
    N is not prime
  add 1 to i

For now, lets assume that both codes are correct. 

Now, B claims that his code is much better as it takes much less time to check if N is prime. 

Lets look into why that is the case.

Lets assume that the operation N is divisible by i takes 1 ms. 

Lets look at few examples on time taken :

Example 1 :

N = 1000033 ( Prime number ) 
Time taken by A's program = 1 ms * number of divisions
                          = 1 ms * 1000033
                          = approximately 1000 seconds or 16.7 mins. 

Time taken by B's program = 1ms * number of divisions 
                          = 1ms * square root of 1000033
                          = approximately 1000ms = 1 second. 

Example 2 :

N = 1500450271 ( Prime number ) 
Time taken by A's program = 1 ms * number of divisions
                          = 1 ms * 1500450271
                          = approximately 1000000 seconds or 11.5 days 

Time taken by B's program = 1ms * number of divisions 
                          = 1ms * square root of 1500450271
                          = approximately 40000ms = 40 seconds.

As you can see B’s program is significantly faster even though both methods of solving the problem are correct. 

This is where time complexity of programs comes in, which is a measure of how efficient ( or quick ) a program is for large inputs. 

In first case, time taken is directly proportional to N, whereas in second case it is directly proportional to square root of N. In later slides, we will look into how we can formalize it into time complexity notations.

Serious about Learning Programming ?

Learn this and a lot more with Scaler Academy's industry vetted curriculum which covers Data Structures & Algorithms in depth.

This topic has only Multiple Choice Questions

Jump to subsequent topics to solve code problems.

Time Complexity Problems

Basic primer
Problem Score Companies Time Status
LOOP_CMPL 20 2:43
NESTED_CMPL 20
1:10
NESTED_CMPL2 30
1:25
CHOOSE4 50
0:57
Math
Problem Score Companies Time Status
WHILE_CMPL 50
1:31
NESTED_CMPL3 80 3:56
LOOP_CMPL2 80
2:43
GCD_CMPL 150
4:13
Compare functions
Problem Score Companies Time Status
CHOOSE3 50
1:39
CHOOSE1 50
1:43
CHOOSE2 80
2:23
Function calling itself
Problem Score Companies Time Status
REC_CMPL1 80 6:58
REC_CMPL2 80
6:25
REC_CMPL3 150
4:39
Amortized complexity
Problem Score Companies Time Status
AMORTIZED1 100
3:03
lock
Topic Bonus
Bonus will be unlocked after solving min. 1 problem from each bucket