2017-06-22 183 views
-3
list1 = ['a','b','c','d'] 
a = list1.index('c') 
print(a) #2 

但是什么是时间复杂度?是O(1)还是O(n)?list.index(obj)方法的时间复杂度是多少?

+0

'O(n)',假设......只是因为你需要重新扫描列表 – FieryCat

+0

由于您没有使用字典/散列表,我认为索引需要迭代列表。所以它会是'O(n)' – Quickbeam2k1

+0

这个问题可以用最小的Google技能来解答。或者,就常识而言:它不可能比O(n)好,而明显的朴素的实现是O(n),这意味着以比O(n)差的方式实现它将需要一个活动努力故意让它变慢,我们可以假设情况并非如此,因此,它是O(n)。 –

回答

0

这是为O(n),还检查了:http://wiki.python.org/moin/TimeComplexity

本页面记录的时间复杂度(又名 “大O” 或 “大哦” )在当前CPython中的各种操作。其他Python实现(或者更早的或者仍在CPython的开发版本中)可能具有略微不同的性能特征。然而,假设它们不会慢于O(log n)的因数通常是安全的。

相关问题