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
",i - OFFSET);
18             }
19         }
20     }
21     return 0;
22 }
原文地址:https://www.cnblogs.com/fresh-coder/p/14470947.html