[英]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.