我知道如何获得单一最大值:
m = max([1,2])
2
我如何获得最大n
元素?例如:
m = max([1,2,3,4,5], n=2)
[4,5]
答案 0 :(得分:6)
import heapq
input_list = [1,2,3,4,5]
number_of_elements = 3
heapq.nlargest(number_of_elements, input_list)
有关详细信息,请参阅heap queue algorithm docs
答案 1 :(得分:2)
这是实现它的一种方法 - 对列表进行排序,然后对第一个n
元素进行切片。
def maxN(elements, n):
return sorted(elements, reverse=True)[:n]
答案 2 :(得分:1)
如果你想要超越排序算法的性能,你需要使用选择算法(如QuickSelect)
这将平均复杂度从O(n log n)(快速排序)降低到O(n)(快速选择)。