Python的最大功能有多高效

时间:2011-03-28 02:18:37

标签: python performance python-3.x big-o

函数max(),它返回列表中的最大元素。 。 。根据{{​​3}}?

,它的运行时间(在Python 3中)是多少?

3 个答案:

答案 0 :(得分:14)

它是O(n),因为它必须检查每个元素。如果您希望获得最佳性能,可以使用heapq模块。但是,您必须negate each value,因为heapq提供了最小堆。将元素插入堆中的是O(log n)。

答案 1 :(得分:1)

当然它是O(n),除非你使用不同的数据结构支持最大的值集合,因为某些实现是不变的。

答案 2 :(得分:1)

这取决于你如何使用它。 如果你想基于函数“someFunc”进行最大化,那么它将需要O(len(l)*k),其中k是时间函数“someFunc”运行。

maxVal = max(l, key=somefunc)

但是对于正常情况,它应该只是迭代列表并使用正常比较函数找到最大值。