使用Min Heap实现Top N Elements查找

来源:互联网 发布:烘焙成本核算软件 编辑:程序博客网 时间:2024/06/07 06:31
std::vector<int> TopN_MinHeap(std::vector<int> &nums, int n)
{
     std::priority_queue<int, std::vector<int>, std::greater<int>> q;
     for (int i = 0; i < n; i++)
          q.push(nums[i]);
     int sizeOfNums = nums.size();
     for (int i = n; i < sizeOfNums; i++)
     {
          q.push(nums[i]);
          q.pop();
     }

     std::vector<int> result;
     while (q.size() > 0) {
            result.push_back(q.top());
            q.pop();
     }
     return result;
}
原创粉丝点击