2个TLE,求大佬帮忙
查看原帖
2个TLE,求大佬帮忙
401973
PANSG楼主2021/3/22 20:17

前3个AC,后面两个TLE,求大佬帮忙看下怎么改

#include<stdio.h>
int s[100009];
void quick_sort(int s[],int l,int r)
  {
  	if(l < r)
  	{
  		int temp = s[l];
  		s[l] = s[(l+r-1)/2];
  		s[(l+r-1)/2] = temp;
  		int i = l,j = r,x = s[l];//选用s[l]作为基准数
		while(i < j)
		{
			while(i <j && s[j] >= x)//从右向左找第一个小于x的数
				j--;
			if(i < j)
				s[i++] = s[j];
			
			while(i < j && s[i] < x)//从左向右找第一个大于等于x的数
				i++;
			if(i < j)
				s[j--] = s[i]; 
		 }
		 s[i] = x;
		 quick_sort(s,l,i - 1);//递归调用
		 quick_sort(s,i+1,r);
	  }
} 
int main(void){
	int n;
	scanf("%d",&n);
	for(int i = 0;i<n;i++){
		scanf("%d",&s[i]);
	}
	quick_sort(s,0,n-1);
	for(int i = 0;i<n;i++){
		printf("%d ",s[i]);
	}
	
} 
2021/3/22 20:17
加载中...