2016-06-07 99 views
1

Python如何找到数组的长度?它存储在内部数据结构的某个地方,还是必须遍历整个事物来查找长度?在Python中运行len(array)的时间复杂度?

我问,因为我使用它进行O(log(n))运行的二进制搜索,但这显然没有意义,如果我必须遍历整个事情只是为了找到长度。

+0

Array?或列表? –

+2

https://wiki.python.org/moin/TimeComplexity – falsetru

+0

对于列表是O(1),其他类型看这里:https://www.ics.uci.edu/~pattis/ICS-33/lectures/complexitypython 。文本 – Serenity

回答

3

列表可以将它们的长度存储为其结构的一部分。由于它只需要存储在一个地方,因此它可以将最多O(1)添加到所有计算中,因此不会造成太大的开销。

获取长度因此是O(1),因为它只是查找字段。

欲了解更多信息,请参阅the docs