//选择数组中的第i小元素
#include <iostream>
#include <cstring>
#define N 1000
using namespace std;
int search_max(int A[],int length) //数组从1开始
{
int max=A[1];
for(int i=2;i<=length;i++)
{
if(max < A[i]) max = A[i];
}
return max;
}
int SELECT(int A[],int length, int i) //返回数组中的第i小元素
{
int B[N];
memset(B,0,sizeof(B));
int max;
max=search_max(A,length);
for(int j=1;j<=length;j++) B[A[j]]++;
for(int j=0;j<=max;j++)
{
i=i-B[j];
if(i<=0) return j;
}
}
int main(int argc, char *argv[])
{
int n; cin >> n;
int i; cin >> i;
int A[N];
for(int i=1;i<=n;i++) cin >> A[i];
cout << SELECT(A,n,i) <<endl;
cout << "Hello World!" << endl;
return 0;
}
寻找数组中的第i小元素
最新推荐文章于 2022-03-07 21:22:23 发布