为啥只得80分,还有20分超时??????大佬求解
查看原帖
为啥只得80分,还有20分超时??????大佬求解
526386
7teen楼主2022/5/6 15:09
#include <bits/stdc++.h>
using namespace std;
int t;
int a[5000005];
void quick_sort(int left,int right)
{
	int i=left,j=right;
	int pivot = a[ ( left + right ) / 2];
	
    do{
		while(a[j]>pivot)
		{
			j--;
		}
		while(a[i]<pivot)
		{
			i++;
		}
		if(i<=j)
		{
			swap(a[i],a[j]);
			i++;
			j--;
		}
	  }while(i<=j);
		

		if(t<=j)
		{
			quick_sort(left,j);
		}
		else if(i<=t)
		{
		   quick_sort(i,right);
		}
		else
		{
			cout<<a[j+1];
			exit(0);
		}		
}


int main()
{
	int n;
	cin>>n>>t;
	for(int i=0;i<n;i++)
	{
		cin>>a[i];
	}
	quick_sort(0,n-1);
	return 0;
}
2022/5/6 15:09
加载中...