题解

2 条题解

  • 1
    @ 2017-11-06 21:34:38

    #include<cstdio>
    long int data[100005];
    int n;
    void qsort(int sta,int end)
    {
    if(sta==end) return ;
    int i=sta,j=end;
    long int a;
    long int mid=data[sta+(end-sta)/2];
    do
    {

    while(data[i]<mid)i++;
    while(data[j]>mid)j--;

    if(i<=j)
    {
    a=data[i];
    data[i]=data[j];
    data[j]=a;
    i++;
    j--;
    }
    }while(i<=j);

    qsort(sta,i-1);
    qsort(i,end);

    }
    int main()
    {

    scanf("%d",&n);
    for(int i=1;i<=n;i++)
    scanf("%ld",&data[i]);

    qsort(1,n);

    for(int i=1;i<=n;i++)
    printf("%ld ",data[i]);

    return 0;
    }

  • 1
    @ 2017-02-23 10:21:03
    #include<cstdio>
    long int  data[100005];
    int n;
    void qsort(int sta,int end)
    {
        if(sta==end) return ;
        int i=sta,j=end;
        long int a;
        long int mid=data[sta+(end-sta)/2];
        do
        {  
         
            while(data[i]<mid)i++;
            while(data[j]>mid)j--;
            
            
            if(i<=j)
            {
             a=data[i];
            data[i]=data[j];
            data[j]=a;
            i++;
            j--;
            }
        }while(i<=j);
    
        qsort(sta,i-1);
        qsort(i,end);
        
        
    }
    int main()
    { 
        
        scanf("%d",&n);
        for(int i=1;i<=n;i++)
        scanf("%ld",&data[i]);
        
        qsort(1,n);
        
        for(int i=1;i<=n;i++)
        printf("%ld ",data[i]);
        
        return 0;
    }
    
  • 1

信息

难度
8
分类
(无)
标签
递交数
126
已通过
16
通过率
13%
上传者