import random import heapq #使用随机数模拟数据流的生成 def productstreamnum(): return random.randint(1, 1000) #使用python的heapq模块进行数据处理,当堆中元素不足n个时,直接向堆插入元素,当堆中元素为n时开始进行判断,取堆中最小元素与新生成的随机数比较,如果新生成的随机数大,则弹出堆中最小元素,压入随机数。如果堆中元素大,则直接返回堆中元素 def findTheNLargestNum(n): heap = [] for i in range(0, n+10): randomNum = productstreamnum() print("######"+str(randomNum)+"######") if i < n: heapq.heappush(heap, randomNum) elif heapq.nsmallest(1, heap)[0] < randomNum: heapq.heappop(heap) heapq.heappush(heap, randomNum) print(heapq.nsmallest(1, heap)[0]) else: print(heapq.nsmallest(1, heap)[0]) findTheNLargestNum(3)
python返回数据流中第n大的元素
最新推荐文章于 2022-03-14 16:36:29 发布