imfkwk @ 2020-11-08 11:42:31
#include<bits/stdc++.h>
using namespace std;
int n,k,a[5000000];
void f(int st,int ed)
{
int i=st,j=ed,x=a[(i+j)/2];
while(i<j)
{
while(a[i]<x)i++;
while(a[j]>x)j--;
swap(a[i],a[j]);
}
if(i>k)f(st,i-1);
if(i<k)f(i+1,ed);
else
{
cout<<a[k];
//exit(0)
}
}
int main()
{
cin>>n>>k;
for(int i=0;i<n;i++)
cin>>a[i];
f(0,n-1);
}
不懂就问,为甚么不加exit(0)会有多次输出?每次调用函数都有唯一的条件,可是为甚么会运行多次呢?