大O符号中的T(n)

时间:2015-06-07 14:23:23

标签: python big-o

当计算T(n)复杂度时,1n通常表示为n?

例如,在以下Python代码中:

def Average(aList):
    x = len(aList)
    total = 0
    for item in aList:
        total = total + item
    mean = total / n
    return mean

现在计算出T(n),函数以2个赋值开始,1个循环是1n赋值,1个循环给出后赋值

T(n)= 1n + 3

是否会丢弃1给n + 3给出O(n)?

3 个答案:

答案 0 :(得分:2)

订单表示法是关于算法复杂性的增长,而不是具体的操作次数。

因此,O(3n)以与O(n)相同的速率增长,因此消除了乘法和加法常数。考虑比率,如果你将" n"的值加倍,那么在这两种情况下,时间加倍。

忽略增长较慢的组件。在极限O(n + 3)在O(n)处以大约相同的速率增长。就此而言,它的增长率与O(10n + log(n)+7)大致相同。

符号表示法的关键思想是" n"增长。它不是要计算所有具体操作。

答案 1 :(得分:1)

" Big O" (或Landau)表示法所有常量都被删除,因为它们不会影响函数/复杂性的增长。因此1n + 3将是O(n)而不是O(1n + 3)或O(n + 3)。

这是因为该功能的线性。像2n这样的东西也是O(n),因为因子2只是影响函数的输出但不影响强度/速率"你的职能在哪里成长。

答案 2 :(得分:0)

它是"Big O" notation。增加常数会减少,并且乘以常数。

The Big O