简单函数的Big-O表示法及其原因

Bla*_*kQQ -2 python big-o

对于像以下简单函数的大O符号是什么:

def function(array, index):
    return array[index]
Run Code Online (Sandbox Code Playgroud)

它会是线性的,因为它会查看数组中的每个单元格吗?还是不变?为什么?

Mar*_*ers 5

这取决于对象的类型.如果array是Python列表对象,它将是O(1).如果是链表,则为O(n).如果它是二叉树,则可以是O(log n).

换句话说,除了将操作委托给另一个对象之外什么都不做的函数没有明显的复杂性.它完全取决于该操作的成本.