Time Complexity

Last Updated: Nov 17, 2023
Go to Problems
locked
Time Complexity
info
Complete all the problems in this Topic to unlock a badge
Completed
Go to Problems

Level 1

Jump to Level 2

Level 2

Jump to Level 3

Level 3

Jump to Level 4

Level 4

Jump to Level 5

Level 5

Jump to Level 6

Level 6

Jump to Level 7

Level 7

Jump to Level 8

Level 8

Be a Code Ninja!
Contents

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.

Video Courses
By

View All Courses
Excel at your interview with Masterclasses Know More
Certificate included
What will you Learn?
Instructions from Interviewbit
Start Test