这是我用来查找运行时间的算法。我知道怎么做得这么好,除了他没有解释为while循环做什么,他说他不会。我也不知道begin和end的语法是什么。在for循环之后他通常没有那个,所以既然它现在在那里我很困惑。
procedure f(n)
s=0;
for i=1 to 5n do
begin
j=4i;
while j<i^3 do
begin
s=s+i-j
j=5j
end
end
答案 0 :(得分:0)
查看第二个循环,我们可以看到while循环从4i
开始,在k
次迭代后结束,其中k
是4*i*5^k=i^3
,即k = log_5{i^2/4}
{1}}。所以你的运行时间是:
在倒数第二个等式中,我们使用了Stirling's approximation。