运行 下面函数的时间
Running time of the function below
外循环运行了 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)
外循环运行了 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)