为什么会超时,我这个不是O(n)么
查看原帖
为什么会超时,我这个不是O(n)么
1118703
xiuman楼主2024/1/28 18:15
#include<bits/stdc++.h>
using namespace std;
int a[5000002]{};
int n,k;
void qsort(int low,int high){
	int i=low,j=high,flag=a[(high+low)/2];
	do{
		while(a[i]<flag)i++;
		while(a[j]>flag)j--;
		if(i<=j){
			swap(a[i],a[j]);
			i++;j--;
		}
	}while(i<=j);
	if(k<=j)qsort(low,j);
	else if(i<=k)qsort(i,high);
	else {
		cout<<a[k];
		return;
	} 
}
int main(){
	cin>>n>>k;
	for(int i=0;i<n;i++){
		cin>>a[i];
	}
	qsort(0,n-1);
}
2024/1/28 18:15
加载中...