以下功能的运行时间

时间:2015-10-26 17:46:37

标签: python algorithm data-structures big-o time-complexity

外循环运行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)

1 个答案:

答案 0 :(得分:1)

对于O(n/i)的每个值,内部循环运行i次。

如果我们总结i的所有值,我们得到:

n/1 + n/2 + n/3 + ... + n/n = n* (1 + 1/2 + ... + 1/n)

总和1 + 1/2 + ... + 1/nharmonic number,位于O(logn),因此您的代码为O(nlogn)