Sort

题目

 

 本题不能用快排,会超时,因为数据量大。若用快排将会是千万的复杂度,1s内过不去。本题采用哈希,将NlogN算法降低为N

代码

 1 #include<iostream>
 2 using namespace std;
 3 #define OFFSET 500000
 4 int h[1000001];
 5 int main(){
 6     int n,m;
 7     while(scanf("%d%d",&n,&m) != EOF){
 8         for(int i = 0;i < n;i++){
 9             int x;
10             scanf("%d",&x);
11             h[x+OFFSET]++;
12         }
13         int k = 0;
14         for(int i = 0;i < 1000001;i++){
15             if(h[i] > 0){
16                 k++;
17                 if(k == m) printf("%d\n",i - OFFSET);
18             }
19         }
20     }
21     return 0;
22 }

 

posted @ 2021-03-02 20:09  Uitachi  阅读(67)  评论(0编辑  收藏  举报