手写快排及心得

//递归法//
#include
int quicksort(int a[],int left,int right)
{
    int i,j,key;
    if(left     {
        i=left,j=right,key=a[left];
        while(i         {
            while(ikey)         //后边万不可加分号//
                j--;
            if(i             {
                a[i]=a[j];
                i++;
            }
            while(i                 i++;
            if(i             {
                a[j]=a[i];
                j--;
            }
        }
        a[i]=key;
        quicksort(a,left,i-1);
        quicksort(a,i+1,right);
    }

}

int main()
{
    int a[5];
    for(int i=0; i<5; i++)
    {
        scanf("%d",a+i);
    }
    int left=0,right=4;
    quicksort(a,left,right);
    for(int i=0; i<5; i++)
    {
        if(i)
            printf(" ");

        printf("%d",a[i]);

        //等价于printf("%d",*(a+i));//

    }
    printf("\n");
    return 0;
}

你可能感兴趣的:(手写快排及心得)