## 百万级的数怎么“排序呢?”避免超过1s,建立hash即可,时间在百万级,而排序难免在nlogn,在千万级。
#include<iostream>
using namespace std;
#define OFFSET 500000
int num[1000000];//栈容易爆
int main(){
int N,M;
while(scanf("%d%d",&N,&M)!=EOF){
for(int i = -500000; i < 500001; i++){
num[i+OFFSET] = 0;
}
for(int i = 0; i < N; i++){
int x;
scanf("%d",&x);
num[x+OFFSET] = 1;
}
for(int i = 500000; i >= -500000 ;i--){
if(num[i+OFFSET]==1&&M>0){
M--;
printf("%d",i);
if(M)
printf(" ");
else{
printf("\n");
break;
}
}
}
}
}```
来源:CSDN
作者:Leonjang
链接:https://blog.csdn.net/weixin_38023259/article/details/103866797