What would be the time complexity for this, will it be O(logn)?
fun(int n) {
if (n < 2)
return 1;
int counter = 0;
for (int i = 1; i <= 8; i++)
fun(n / 2);
for (int i = 1; i <= Math.pow(n, 3); i++)
counter++;
}
The complexity of the function is:
T(n) = n^3 + 8*T(n/2)
n^3
comes from the last loop, which is going from 1
to n^3
8*T(n/2)
from calling fun(n/2)
8 times (in the first loop)To find the complexity, one can use master theorem with: a = 8, b = 2, f(n) = n^3
Using case 2:
log_2(8) = 3
, and indeed f(n)
is in Theta(n^3)
, giving this function complexity of O(n^3*logn)
.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With