快排全TLE求助
查看原帖
快排全TLE求助
1004237
Poombom楼主2023/12/3 11:57
#include<iostream>
using namespace std;
void mach(int a[],int l,int r,int flag);
void qs(int a[],int l,int r);
int main()
{
	int n;
	cin>>n;
	int a[n+1];
	for(int i=1;i<=n;i++)
	{
		scanf("%d",&a[i]);
	}
	qs(a,1,n);
	for(int i=1;i<=n;i++)
	{
		cout<<a[i];
	}
	return 0;
}
void qs(int a[],int l,int r)
{
    if(l>=r)return;
	int flag=a[l/(r-l)];
	mach(a,l,r,flag);
    qs(a,l,flag-1);
    qs(a,flag+1,r);
}
void mach(int a[],int l,int r,int flag)
{
	int i=l,j=r;
	do{
        while(a[i]<flag)i++;
        while(a[j]<flag)j++;
        if(i<j){
        a[i]=a[i]^a[j];
        a[j]=a[i]^a[j];
        a[i]=a[i]^a[j];
        }
	}while(i<j);
}

这个,结果在这,求dalao救救蒟蒻

2023/12/3 11:57
加载中...