快速排序

来源:互联网 发布:机械三维设计软件 编辑:程序博客网 时间:2024/06/07 03:55

快排

#include<stdio.h>
int a[105],n;
int quicksort(int left ,int right )
{
        int i,j,temp,t;
        if(left>right)
                return 0 ;
        else
        {
                temp=a[left];
                i=left,j=right;
                while(i<j)
                {
                        while(a[j]>=temp&&i<j)
                                j--;
                                a[i]=a[j];
                        while(a[i]<=temp&&i<j)
                                i++;
                                a[j]=a[i];
                       /* if(i<j)
                        {
                                t=a[i];
                                a[i]=a[j];
                                a[j]=t;
                        }
                        */
                }
               // a[left]=a[i];
               // a[i]=temp;
               a[i]=temp;
                quicksort(left,i-1);
                quicksort(i+1,right);
        }
}
int main()
{
        int i,n;
        while(1)
        {
        scanf("%d",&n);
        for(i=1;i<=n;i++)
                scanf("%d",&a[i]);
        quicksort(1,n);
        for(i=1;i<=n;i++)
                printf("%d ",a[i]);
        }
        return 0;
}