我不明白如何找到这个功能的复杂性。我如何设置数学。你能不能帮我解决一些提示,因为我对大O符号很困惑 感谢
答案应为O(n ^(1/3))
void fun (int n){
int i=0;
while(i*i*i<=n){
i++;
}
}
答案 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)表示=达到所需值所需的迭代次数。