选择问题即:寻找N个元素中的第K个最大者或最小者。
#include
const int maxn=100;//假设最多有100个元素
using namespace std;
int data[maxn];
int n;
int inp(int low,int high)//划分
{
int i,j;
i=low,j=high; //初始化待划分区间
while(i
k)
return SelectMink(low,s-1,k);//在data[low]~data[s-1]中继续查找
else return SelectMink(s+1,high,k);//在data[s+1]~data[high]中继续查找
}
int main()
{
while(cin>>n)
{
for(int i=1;i<=n;i++)
cin>>data[i];
int k;
cin>>k; //查找第k小元素
cout<
<