摘要: topK问题就是在很多个无序的数之间选出前最小(大)的K个数,对于这种问题可以建立K大小的堆,如果是求K大个数的话,就建立最小堆,反之求最小个数的话就建最大堆。然后再遍历这个无序数组,如果遇到比堆顶元素大,就移除堆顶元素,把大的那个元素加入堆,反之亦然。 代码如下:#include#include#include#include#includeusing namespace std;template inline void print(const vector& cala){ typename vector::const_iterator first = cala.begin(); f 阅读全文
posted @ 2013-08-26 21:19 露天坝 阅读(1054) 评论(0) 推荐(0) 编辑