对于像以下这样简单函数的大O符号是什么:
def function(array, index):
return array[index]
它是否是线性的,因为它会查看数组中的每个单元格?还是不变?为什么?
答案 0 :(得分:5)
这取决于对象的类型。如果array
是Python列表对象,那么它将是O(1)。如果是链表,则为O(n)。如果它是二叉树,则可以是O(log n)。
换句话说,除了将操作委托给另一个对象之外什么都不做的函数没有明显的复杂性。这完全取决于一次操作的成本。