快排,但是60分,#3#4TLE
查看原帖
快排,但是60分,#3#4TLE
1159387
jung_le楼主2024/2/23 08:50
#include<bits/stdc++.h>
using namespace std;
int n,a[100000];
void kp(int l,int r){
	int lp = l,rp = r;
//	int flag=-1;
	int v = a[lp];
	if(l>=r)return; 
	while(lp<rp){
		while(a[rp]>v && rp>lp){
			rp--;
		}
		if(lp<rp)
		{a[lp++]=a[rp];
		}
		while(v>a[lp] && rp>lp)lp++;
		if(lp<rp)
		{a[rp--]=a[lp];
		}
	}
	a[lp] = v;
//	if(flag==-1)return; 
	kp(l,lp-1);
	kp(lp+1,r);
}
int main(){
	scanf("%d",&n);
	for(int i=0;i<n;i++){
		scanf("%d",&a[i]);
	}
	kp(0,n-1);
	for(int i=0;i<n;i++){
		printf("%d ",a[i]);
	}
	return 0;
}

2024/2/23 08:50
加载中...