Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/36.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
Big o 为什么下面代码的大O符号是这样的? 问题1。_Big O - Fatal编程技术网

Big o 为什么下面代码的大O符号是这样的? 问题1。

Big o 为什么下面代码的大O符号是这样的? 问题1。,big-o,Big O,我的答案是:1+n^2*n=n^3 正确答案:O(n) void f(int n){ 如果(第1项) (O(n)分析方面的简化) 在这里您可以看到为什么它是O(n),因为它一直在倒计时,直到达到递归停止条件nQuestion 1的值检查是一个技巧性问题,因为for循环将在递归函数调用后立即执行return,而递归调用链是O(n)组件,而不是for循环。我明白了,感谢@DaiI喜欢这个简短的解释。 void f(int n) { if (n<1000000) ret

我的答案是:1+n^2*n=n^3

正确答案:O(n)

void f(int n){
如果(第1项)
(O(n)分析方面的简化)


在这里您可以看到为什么它是
O(n)
,因为它一直在倒计时,直到达到递归停止条件
nQuestion 1的值检查是一个技巧性问题,因为
for
循环将在递归函数调用后立即执行
return
,而递归调用链是
O(n)
组件,而不是
for
循环。我明白了,感谢@DaiI喜欢这个简短的解释。
void f(int n) {
    if (n<1000000)
         return 0;
    for (int i=0; i<(n*n); i++)
         return f(n-1);
}

int f(int n) {
    for (int i=1; i< (n/2); i++) 
        for(double j =0; j <100; j+= (100.0/n) 
              doSomething (n/2); //doSomething(m) has time complexity of O(m)
    return 0;
}
int f(n) {
    if (n<1) return;
    g(n-1); 
}

void g(n) {
    f(n/2) 
    doOne(); // doOne has time complexity O(1)
}
void f(int n) {
    if (n<1000000)
         return 0;
    for (int i=0; i<(n*n); i++)
         return f(n-1);
}
void f(int n) {
    if (n<=0)
         return 0;
    return f(n-1);
}
int f(int n) {
    for (int i=1; i< (n/2); i++) 
        for(double j =0; j <100; j+= (100.0/n) 
              doSomething (n/2); //doSomething(m) has time complexity of O(m)
    return 0;
}
for (int i=1; i< (n/2); i++)
for (int i=1; i<n; i++)
for(double j =0; j <100; j+= (100.0/n)
for(double j =0; j <1; j+= (1.0/n)    (divided by 100)
for(double j =0; j <n; j+= 1.0)       (multiplied by n)
doSomething (n/2);
int f(n) {
    if (n<1) return;
    g(n-1); 
}

void g(n) {
    f(n/2) 
    doOne(); // doOne has time complexity O(1)
}