我这是快排吧,咋超时了
查看原帖
我这是快排吧,咋超时了
240709
woshishuilaizhe楼主2024/7/3 17:20
#include<iostream>
using namespace std;
int A[100000000], n;
int paixu(int l, int r)
{
	char k='r';
	int s=A[l], ll=l, rr=r;
	for(; l<r;)
	{
		if(k == 'r')
		{
			if(A[r]<s)A[l]=A[r],A[r]=s,k='l';
			else r--;
		}
		else if(k == 'l')
		{
			if(A[l]>=s)A[r]=A[l],A[l]=s,k='r';
			else l++;
		}
	}
	if(ll<=l-1)paixu(ll,l-1);
	if(rr>=r+1)paixu(r+1,rr);
	return 0;
}
int main()
{
	cin >> n;
	for(int i=0;i<n;i++)cin>>A[i];
	paixu(0, n-1);
	for(int i=0;i<n;i++)cout<<A[i]<<" ";
	return 0;
}
2024/7/3 17:20
加载中...