运行都不行,哪里不对?
查看原帖
运行都不行,哪里不对?
735164
pengqiushi楼主2022/10/4 20:29

代码如下:

#include<iostream>
using namespace std;
int a[100005];
int n;
void fastsort(int l,int r){
	//cout<<l<<" "<<r<<endl;
	if(l>=r)
		return;
	int ans=a[l];
	int i=l,j=r;
	int mid;
	do{
		i++;
		if(a[i]>ans)
			do{
				j--;
				if(a[j]<=ans){
					swap(a[i],a[j]);
					break;
				}
			}
			while(i<=j);
	}
	while(i<=j);
	mid=i;
	swap(a[l],a[mid]);
    if(l<mid)
		fastsort(l,mid);
	if(mid<r)
		fastsort(mid+1,r);
	return;
}
int main()
{
	cin>>n;
	for(int i=1; i<=n; i++)
		cin>>a[i];
	fastsort(1,n);
	for(int i=1; i<=n-1; i++)
		cout<<a[i]<<" ";
	cout<<a[n]<<endl;
	return 0;
}
2022/10/4 20:29
加载中...