2016-02-02 94 views
-2

会是什么大O记法的简单功能,如:大O符号,为什么

def function(array, index): 
    return array[index] 

这将是线性的,因为它看起来在阵列中的每个单元格?或不变?为什么?

+1

这是恒定的,因为无论您的输入有多大,它都只能访问一件事。 – Casey

+1

不变。它不看每个单元格,它只查看一个单元格。 –

+1

O(1):见https://wiki.python.org/moin/TimeComplexity – dfri

回答

5

这取决于对象的类型。如果array是一个Python列表对象,它将是O(1)。如果它是一个链表,它将是O(n)。如果它是二叉树,它可能是O(log n)。

换句话说,除了将操作委托给另一个对象的函数没有明确的复杂性。这完全取决于该操作的成本。