外循环运行了n次,但我找不到内循环的运行时间和总运行时间,请问你能帮忙解决这个问题吗?
def function(n)
count=0
if n<=0:
return
for i in range(1,n):
j=1
While j<n:
j=j+i
count = count+1
print(count)
最佳答案
对于 i
的每个值,内部循环运行 O(n/i)
次。
如果我们对 i
的所有值求和,我们得到:
n/1 + n/2 + n/3 + ... + n/n = n* (1 + 1/2 + ... + 1/n)
总和 1 + 1/2 + ... + 1/n
是 harmonic number ,它在 O(logn)
中,所以你的代码是 O(nlogn)
关于python - 下面函数的运行时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33352268/