Knuth算法的复杂性

时间:2014-09-23 14:36:22

标签: algorithm complexity-theory time-complexity asymptotic-complexity

算法是这样的:

def online_variance(data):
    n = 0
    mean = 0
    M2 = 0

    for x in data:
        n = n + 1
        delta = x - mean
        mean = mean + delta/n
        M2 = M2 + delta*(x - mean)

    if (n < 2):
        return 0

    variance = M2/(n - 1)
    return variance

取自Wikipedia

问题是这个算法的时间复杂度是多少?我的答案是O(N),但似乎太容易了。我错过了什么吗?也许这些分歧也应该考虑在内?

1 个答案:

答案 0 :(得分:2)

你是对的,复杂性是O(n)。 for循环中的语句以恒定时间执行,并执行n次(其中n是数据中元素的数量)。