P1177快排前3个点WA,求助
查看原帖
P1177快排前3个点WA,求助
677626
xiehy楼主2023/8/3 08:50
#include<bits/stdc++.h>
using namespace std;
int n;
long long k[100020];
void qsort(int l,int r){
	if(l>=r){
		return;
	}
	int left=l,right=r;
	int mid=l+r>>1;
//	cout<<"left="<<left<<" "<<k[left]<<endl;
//	cout<<"right="<<right<<" "<<k[right]<<endl;
//	cout<<" mid="<<mid<<" "<<k[mid]<<endl<<endl;
	while(right>left){
		while(right>=left&&k[right]>k[mid])right--;
		while(right>=left&&k[left]<k[mid])left++;
		if(right>left){
			swap(k[right],k[left]);
			right--,left++;
		}
	}
	qsort(l,right);
	qsort(right+1,r);
}
int main(){
	cin>>n;
	for(int a=1;a<=n;a++){
		cin>>k[a];
	}	
	qsort(1,n);
	for(int a=1;a<=n;a++){
		cout<<k[a]<<" ";
	}
	return 0;
}
2023/8/3 08:50
加载中...