求助大佬?为什么我后三个点测试点都超时了?
查看原帖
求助大佬?为什么我后三个点测试点都超时了?
1184968
chengwenhao楼主2024/1/25 12:30
#include<stdio.h>

int part(int A[],int n, int p, int r) {
    
		int x, i, j, t;
        
		x = A[r];
        
		i = p - 1;
        
		for (int j = p;j < r;j++) {
        
			if (A[j] <= x){
            
				i++;
                
			t = A[i];
            
			A[i] = A[j];
            
			A[j] = t;
            
		}}
        
		t = A[i + 1];
        
		A[i + 1] = A[r];
        
		A[r] = t;
        
		return i + 1;
        
	}
void quincksort(int A[],int n,int p, int r){

    int q=0;
  
    if(p<r){
  
  	    q=part( A,n,p, r);
    
  	    quincksort( A,n,p,q-1);
    
  	    quincksort(A,n,q+1,r);
    
  }}
int main(){

	   int A[100000],n;
    
	   scanf("%d\n",&n);
    
	   for(int i=0;i<n;i++){
    
		     scanf("%d",&A[i]);
        
	}
	   quincksort(A,n,0,n-1);
    
	   for(int i=0;i<n;i++){
    
	       printf("%d ",A[i]);}
      
	 return 0;
}
2024/1/25 12:30
加载中...