Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 具有常循环和递归的给定函数的时间复杂度_Java_Algorithm_Time Complexity_Big O - Fatal编程技术网

Java 具有常循环和递归的给定函数的时间复杂度

Java 具有常循环和递归的给定函数的时间复杂度,java,algorithm,time-complexity,big-o,Java,Algorithm,Time Complexity,Big O,这件事的时间复杂度是多少(​​​​logn) fun(int n){ if(n

这件事的时间复杂度是多少(​​​​logn)

fun(int n){
if(n<2)
返回1;
int计数器=0;

对于(int i=1;i函数的复杂性为:

T(n) = n^3 + 8*T(n/2)
  • n^3
    来自最后一个循环,从
    1
    n^3
  • 8*T(n/2)
    从调用
    fun(n/2)
    8次(在第一个循环中)
要找到复杂性,可以使用with:
a=8,b=2,f(n)=n^3

使用案例2:


log_2(8)=3
,实际上
f(n)
Theta(n^3)
中,使得该函数的复杂性为
O(n^3*logn)

为什么会是log n?函数中有一个最多n个立方的for循环。
fun
返回什么?
int
void
?反正它不会编译。没有使用变量
计数器
,因此优化器可能会删除最后一个循环。
T(n) = n^3 + 8*T(n/2)