快排TLE(40),求助
查看原帖
快排TLE(40),求助
916188
zyc220606楼主2023/7/6 17:23
#include <bits/stdc++.h>
#define MAX 100001
using namespace std;

int n;
int num[MAX] = {0};

void swap(int &x,int &y){
	int temp = x;
	x = y;
	y = temp;
}

void qsort(int a[],int lt,int rt){
	if(lt >= rt) return;
	int left = lt,right = rt;
	int temp = a[left];
	while(left != right){
		while(a[right] >= temp && left < right) right--;
		while(a[left] <= temp && left < right) left++;
		if(left < right) swap(a[left],a[right]);
	}
	swap(a[lt],a[left]);
	qsort(a,lt,left - 1);
	qsort(a,left + 1,rt);
}

int main(){
	scanf("%d",&n);
	for(int i = 1;i <= n;i++) scanf("%d",&num[i]);
	qsort(num,1,n);
	for(int j = 1;j <= n;j++) printf("%d ",num[j]);
	return 0;
}
2023/7/6 17:23
加载中...