python解决topk问题(基于Python)
发布时间
阅读量:
阅读量
方法1:
借助Python语言内置的heapq模块进行实现
import heapq
import random
class TopKHeap(object):
def __init__(self,k):
self.data=[]
self.k=k
def push(self,num):
if len(self.data)<self.k:
heapq.heappush(self.data,num)
else:
top_min=self.data[0]
if num>top_min:
heapq.heapreplace(self.data,num)
def topk(self):
return list(reversed([heapq.heappop(self.data) for i in range(self.k)]))
if __name__ == '__main__':
heap=TopKHeap(10)
for i in range(100000):
全部评论 (0)
还没有任何评论哟~
