Time Complexity of Loop with Powers
What is the time complexity of below function?
void fun( int n, int k) { for ( int i=1; i<=n; i++) { int p = pow (i, k); for ( int j=1; j<=p; j++) { // Some O(1) work } } } |
chevron_right
filter_none
Time complexity of above function can be written as 1k + 2k + 3k + … n1k.
Let us try few examples:
k=1 Sum = 1 + 2 + 3 ... n = n(n+1)/2 = n2 + n/2 k=2 Sum = 12 + 22 + 32 + ... n12. = n(n+1)(2n+1)/6 = n3/3 + n2/2 + n/6 k=3 Sum = 13 + 23 + 33 + ... n13. = n2(n+1)2/4 = n4/4 + n3/2 + n2/4
In general, asymptotic value can be written as (nk+1)/(k+1) + Θ(nk)
Note that, in asymptotic notations like Θ we can always ignore lower order terms. So the time complexity is Θ(nk+1 / (k+1))
Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above
Recommended Posts:
- Time Complexity of a Loop when Loop variable “Expands or Shrinks” exponentially
- Time Complexity where loop variable is incremented by 1, 2, 3, 4 ..
- Time taken by Loop unrolling vs Normal loop
- A Time Complexity Question
- Time Complexity of building a heap
- An interesting time complexity question
- Understanding Time Complexity with Simple Examples
- Practice Questions on Time Complexity Analysis
- Time complexity of recursive Fibonacci program
- Time Complexity Analysis | Tower Of Hanoi (Recursion)
- Python Code for time Complexity plot of Heap Sort
- What does 'Space Complexity' mean?
- Cyclomatic Complexity
- Knowing the complexity in competitive programming
- Interesting Infinite loop using characters in C