快速排序

#include <stdio.h>

void quick(int* a,int left,int right)
{
    if(left >= right)
        return ;
    int tmp=a[left];
    int i=left;
    int j=right;
    while(i<j)
    {
        while(j>i&&a[j]>=tmp)
        j--;
        int t = a[j];
        a[j]=a[i];
        a[i]=t;
        while(i<j&&a[i]<=tmp)
        i++;
        t = a[j];
        a[j]=a[i];
        a[i]=t;
    }

    quick(a,left,i-1);
    quick(a,i+1,right);

}
int main()
{
    int a[100];
    int n;
    while(scanf("%d",&n)!=EOF)
    {
        for(int i=0;i<n;i++)
            scanf("%d",&a[i]);
        quick(a,0,n-1);
        for(int i=0;i<n;i++)
        {
            printf("%d ",a[i]);
        }
        printf("\n");
    }
    return 0;
}

 

全部评论

相关推荐

07-04 16:00
门头沟学院 Java
点赞 评论 收藏
分享
06-08 22:25
门头沟学院 Java
从零开始的转码生活:这hr不会打开手机不分青红皂白给所有人群发这句话,过一会再给所有人再发一遍,这肯定会有重复的,不管,再过一会再发一遍
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务