sort & 快排 60分!
查看原帖
sort & 快排 60分!
314240
Accepted喵楼主2020/9/11 13:01

最后两个点TLE了QwQ 快排:

#include<unistd.h>
#include<cstdio>
using namespace std;
const int N=5e6+10;
int a[N],n,k;
void quickSort(int arr[],int left,int right) {
	if (left > right)return;
	int i=left;
	int j=right;
	int base=arr[left];
	while(i!=j) {
		while(arr[j]>=base&&i<j)j--;
		while(arr[i]<=base&&i<j)i++;
		if(i<j) {
			int tmp = arr[i];
			arr[i] = arr[j];
			arr[j] = tmp;
		}
	}
	arr[left]=arr[i];
	arr[i]=base;
	quickSort(arr,left,i-1);
	quickSort(arr,i+1,right);
}
int main(){
	scanf("%d%d",&n,&k);
	for(int i=0;i<n;i++)scanf("%d",&a[i]);
	quickSort(a,0,n);
	printf("%d",a[k+1]);
}

sort:

#include<cstdio>
#include<algorithm>
using namespace std;
const int N=5e6+10;
int a[N];
int main(){
	int n,k;
	scanf("%d%d",&n,&k);
	for(int i=0;i<n;i++)scanf("%d",&a[i]);
	sort(a,a+n);
	printf("%d",a[k]);
}
2020/9/11 13:01
加载中...