繁体   English   中英

求算法的时间复杂度

[英]finding time complexity of an algorithm

我正在尝试找到以下代码的大 Theta:

k=0,x=0,y=0
for i=1 to 2n do:
    for j=0 to i^2 do:
        k+=1
    t=k
    while t>=0 do:
        ...(O(1) operations)
        t=t-0.5

我知道第一个循环总是在 O(n) 处运行,第二个循环最多为 O((2n)^2) - 当 i=2n 时。 并且 while 运行 2n^2 (这是正确的吗?)

所以我的计算是:T(n) = O(n)*(O(n^2)+O(n^2)) = O(n^3)

我不确定我是否正确,我现在如何才能找到大欧米茄 - 以表明它等于大 O。

您可以分析 T(N) function。 (为了更清楚,现在我忽略了while t>=0... )我们认为这是一个主要操作: k+=1 ,我们计算它完成了多少次。 在数学中:

T(n) =

=

=

这是一个多项式 function 这是因为我们可以按照 function 大于 n^3 的顺序找到常数,并按照小于 n^3 的顺序找到其他常数。

考虑到while t>=0不会改变最终结果,因为它只修改常数因子

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM