Big O Proof,怎么样?

时间:2018-04-16 03:35:35

标签: big-o

我不明白如何找到这个功能的复杂性。我如何设置数学。你能不能帮我解决一些提示,因为我对大O符号很困惑 感谢

答案应为O(n ^(1/3))

void fun (int n){
 int i=0; 
   while(i*i*i<=n){
     i++;
   }
}

1 个答案:

答案 0 :(得分:0)

这里有一个非常好的答案:https://stackoverflow.com/a/13467808/6854069

我假设您正在尝试计算时间复杂度。在这种情况下,如果你的while循环是

while(i<=n){
    i++;
}

那么它将需要&#34; n&#34;迭代为&#34; i&#34;达到价值&#34; n&#34;。因此,时间复杂度为O(n)。

因为你想要达到&#34; n&#34;以i ^ 3的比率,你将达到&#34; n&#34;的价值。是我^(1/3)。 O(n)表示为O(n ^(1/3))。您的while循环也可以表示为:

while(i<=n){
    i++;
    i = i*i*i;
}

时间复杂度的O(n)表示=达到所需值所需的迭代次数。