大佬求助!!!c用快排超时!!
查看原帖
大佬求助!!!c用快排超时!!
1303760
0523jayeup楼主2024/3/23 20:49
#include<stdio.h>

void quicksort(long int a[],int l,int r);
int sort(long int a[],int l,int r);

long int arr[5000005];
int main()
{
	long int i,j,n,index;
	scanf("%ld %ld",&n,&index);
	for(i=0;i<n;i++){
		scanf("%ld",&arr[i]);
	}
	quicksort(arr,0,n-1);
	printf("%ld",arr[index]);
	
	return 0;
}

int sort(long int a[],int l,int r)
{
	int prvit=a[l];
	while(l<r){
		while(a[r]>prvit&&l<r)r--;
		a[l]=a[r];
		while(a[l]<prvit&&l<r)l++;
		a[r]=a[l];
	}
	a[l]=prvit;
	return l;
}

void quicksort(long int a[],int l,int r)
{
	if(l<r){
		int prvit=sort(a,l,r);
		quicksort(a,l,prvit-1);
		quicksort(a,prvit+1,r);
	}
}
2024/3/23 20:49
加载中...