Time Complexity Examples (Step-by-Step)
Constant Time – O(1)
Code:
int getFirst(int arr[])
{
return arr[0];
}
Steps:
• One array access
• One return statement
Time Complexity: O(1)
Logarithmic Time – O(log n)
Code:
int binarySearch(int arr[], int n, int key)
{
int low = 0, high = n - 1;
while(low <= high)
{
int mid = (low + high) / 2;
if(arr[mid] == key)
return mid;
else if(arr[mid] < key)
low = mid + 1;
else
high = mid - 1;
}
return -1;
}
Steps:
• Array size reduces to half each iteration
• n → n/2 → n/4 → ...
Time Complexity: O(log n)
Linear Time – O(n)
Code:
int sum(int arr[], int n)
{
int s = 0;
for(int i = 0; i < n; i++)
s = s + arr[i];
return s;
}
Steps:
• Loop runs n times
• Constant work per iteration
Time Complexity: O(n)
n log n Time – O(n log n)
Example: Merge Sort (Concept)
Steps:
• Dividing array → log n levels
• Merging at each level → n operations
Time Complexity: O(n log n)
Quadratic Time – O(n²)
Code:
void printPairs(int n)
{
for(int i = 0; i < n; i++)
for(int j = 0; j < n; j++)
printf("%d %d", i, j);
}
Steps:
• Outer loop runs n times
• Inner loop runs n times
Time Complexity: O(n²)
Cubic Time – O(n³)
Code:
void tripleLoop(int n)
{
for(int i = 0; i < n; i++)
for(int j = 0; j < n; j++)
for(int k = 0; k < n; k++)
printf("%d %d %d", i, j, k);
}
Steps:
• Three nested loops
• Each loop runs n times
Time Complexity: O(n³)
Polynomial Time – O(n^k)
Explanation:
• k nested loops
• Each loop runs n times
Time Complexity: O(n^k)
Exponential Time – O(2^n)
Code:
int fib(int n)
{
if(n <= 1)
return n;
return fib(n - 1) + fib(n - 2);
}
Steps:
• Each call makes two recursive calls
• Number of calls doubles
Time Complexity: O(2^n)