请帮助我找到下面代码的O()θ()Ω()时间复杂度。

if(x<A) Func1(n);
else if(x<A+1000) Func2(n);
else if(x<A+5000) Func3(n);
else Func4(n);

鉴于:
Func1(n)=θ(n)
Func2(n)=θ(2^n)
Func3(n)=θ(logn)
Func4(n)=O(n)
Func4(n)=Ω(logn)

最佳答案

f为显示代码定义的函数,并设f₁...f₄表示Func1...4。如果没有给出关于xA的值的信息,那么我们可以得出的关于f的最大结论是f(n)在应用于任何f₁...f₄的最小下界之下,在应用于任何f₁...f₄的最大上界之上。其中最小下界为Ω(n),最大上界为O(2),因此CCC的复杂度为Ω(n)和O(2)。
问题中的f(n)的复杂性(如前所述)没有明确定义,因为下面的函数由[cc]的一个倍数所限制的函数不能被乘以f₄(n)的倍数。然而,给定的n log n界限O(n)和Ω(nlogn)都不在Ω(n)和O(2ⁿ)的范围之外。
编辑:修改后的问题,n是θ(log n),而f₄是Ω(logn)和o(n)。f₃下的最小下界为Ω(log n),其复杂度为Ω(log n)和O(2)。没有关于f₄f₁...f₄的信息,没有函数f(n)使得常数xA存在渐近地给出g(n),因此对于C₁可以不表示Th()界限。

关于algorithm - 代码的O(),θ()和Ω()时间复杂度,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16288811/

10-13 09:48