查找长为N的数组中,最大的M个数
#include<iostream>
#include<functional>
#include<queue>
using namespace std;
int main()
{
priority_queue<int,vector<int>,greater<int> > q;//建立最小堆,最小的数在最上边,方便和接下来的大值比较和替换
int n,m,input;
while(cin >> n >> m)
{
int i;
for(i =0;i!=m;i++)//先把m个数建立一个堆
{
cin>>input;
q.push(input);
}
for(int j =0;j<n;j++)
{
cin>>input;
if(input>q.top())
{
q.pop();
q.push(input);
}
}
while(!q.empty())
{
cout <<q.top()<<" ";
q.pop();
}
cout<<endl;
}
system("pause");
return 0;
}