What would be the time complexity for this snippet? I'm having a little trouble understanding how to find the time complexity of nested for loops with different conditions.
I originally thought that it would be n^3 x n^2 which gives O(n^5), but should it be (n^3)^2 which gives O(n^6)?
for(int i = 0; i < n*n; i ) {
for(int j = 0; j < n*n*n; j ) {
A(); //O(1)
}
}
CodePudding user response:
If you correctly incremented j
in the inner loop (replacing i
with j
in the inner loop increment step), it would be O(n⁵)
. The outer loop runs the inner loop n²
times, with each inner loop running n³
times; the total is strictly multiplicative, n² * n³ == n⁵
.
As written, it'll never stop running if n > 1
(because j
never increments, so if the inner loop begins running, it runs forever).