求助
查看原帖
求助
726870
Rainber楼主2023/5/28 15:39
#include<cstdio>
#define MAXN 100000
int ls[100000];
void swap(int *a,int *b)
{
	int c=*a;
	*a=*b;
	*b=c;
}
void qsort(int ls[100000],int start,int end)
{
	if(start>=end)
	{
		return;
	}
	int p=start,l=p,r=end;
	while(l<r)
	{
		while(ls[r]>=ls[p]&&l<r)
		{
			r--;
		}
		while(ls[l]<=ls[p]&&l<r)
		{
			l++;
		}
		swap(ls+l,ls+r);
	}
	swap(ls+l,ls+p);
	qsort(ls,start,l-1);
	qsort(ls,l+1,end);
}
int main()
{
	int n,i;
	scanf("%d",&n);
	for(i=0;i<n;++i)
	{
		scanf("%d",ls+i);
	}
	qsort(ls,0,n-1);
	for(i=0;i<n;++i)
	{
		printf("%d ",ls[i]);
	}
	return 0;
}

快排为什么没过?

2023/5/28 15:39
加载中...