求助!二分做的,但不清楚为什么1,3WA了!!!
查看原帖
求助!二分做的,但不清楚为什么1,3WA了!!!
469249
天才美少女楼主2021/9/7 14:32
#include<bits/stdc++.h>
using namespace std;
int a[5000010],n,k;
int search(int low,int high){
	 int mid,l=low,r=high,tmp;
	 mid=a[(low+high)/2];
	 while(l<r){
	 	while(mid>a[l])l++;
	 	while(mid<a[r])r--;
	 	if(l<=r){
	 		tmp=a[l];
	 		a[l]=a[r];
	 		a[r]=tmp;
	 		l++;
	 		r--;
		 }
	 }
	 if(a[k]==mid)return mid;
	 else if(a[k]<mid)search(low,r);
	 else search(l,high); 
}
int main(void){
	cin>>n>>k;
	for(int i=0;i<n;i++)scanf("%d",&a[i]);
	cout<<search(0,n-1);
	return 0; 
}
2021/9/7 14:32
加载中...