gpt4 book ai didi

algorithm - 简单程序的复杂性

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:46:41 25 4
gpt4 key购买 nike

我有一个程序:

procedure A(n) 
begin
i:=j:=1
while i < n do begin
i:=i+i
for k:=1 to i do j:=j+1
end
end

我的问题是 - 我知道 while 循环运行 log(n) 次,但我不确定整个程序运行了多少次?在此先感谢您的时间!

最佳答案

while 循环执行了 log(Base2)n -1 次。所以它是 O(log(Base2)n)。对于 while 循环的每次迭代,for 循环执行 i 次。现在在 while 循环的每次迭代中,我递增到 i+i。所以 for 循环迭代的总数=1+2+4+8+...2 ^(log(Base2)n-1)=2^((log(base2)n-1)+1)-1/2-1=n-1.so for 循环是 O(n)。所以总时间复杂度=O(log(Base2)n+O(n)=O(n)。

关于algorithm - 简单程序的复杂性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21537055/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com