算法和数据结构 海量数据求前K个数
1、时间复杂度:O(NlogK)。
std::vector<int> arr = {10, 3, 5, 6, 2, 3, 112, 35};
std::priority_queue<int, std::vector<int>, std::greater<int> > q;
// std::priority_queue<int> q;
int K = 3;
for (int i = 0; i < arr.size(); i++)
{
if (i < K) q.push(arr[i]);
else
{
if (arr[i] > q.top())
// if (arr[i] < q.top())
{
q.pop();
q.push(arr[i]);
}
}
}

浙公网安备 33010602011771号