当计算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)?
答案 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。增加常数会减少,并且乘以常数。