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^38*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