Description
输出n个数之中的第m大的数(建议用随机快速排序算法)
Input
n m
n个无序的数
Output
第m大的数(并换行回车)
Sample Input
10 5 6091 15531 3215 19656 31265 28408 1281 25519 10743 8725
Sample Output
15531
KEY:找到一个删一个,就剩下第m个为止,哈哈~很贼吧……
Source:#include<iostream>
using namespace std;
int n;
int m;
int MAX;
int a[10000];
int find()
...{
int i,k;
for(i=1,MAX=0;i<=n;i++)
...{
if(a[i]>MAX)
...{
MAX=a[i];
k=i;
}
}
return k;
}
void del(int k)
...{
int i;
for(i=k;i<n;i++)
...{
a[i]=a[i+1];
}
n--;
}
int main()
...{
// freopen("fjnu_1731.in","r",stdin);
cin>>n>>m;
int i;
for(i=1;i<=n;i++)
...{
cin>>a[i];
}
int k;
for(i=1;i<m;i++)
...{
k=find();
del(k);
}
k=find();
cout<<a[k]<<endl;
}