<算法导论>-快速排序的实现

#include <stdio.h>
#include <stdlib.h>
#define SIZE 10

//quickSort

int part(int *a,int p,int r)
{
    int x=a[r];
    int i=p-1;
    int j,temp;
    int temp2;
    for(j=p;j<=r-1;j++)
    {
        if(a[j]<=x)
        {
            i++;
            temp=a[i];
            a[i]=a[j];
            a[j]=temp;
        }


    }
        temp2=a[i+1];
        a[i+1]=a[r];
        a[r]=temp2;
    return i+1;

};

void quickSort(int *a,int p,int r)
{
    if(p<r)
    {
        int q;
        q=part(a,p,r);
        quickSort(a,p,q-1);
        quickSort(a,q+1,r);
    }
};

int main()
{
    int a[SIZE]={1,22,323,434,5,61,7,8,91,10};
    int i;

    quickSort(a,1,SIZE);
    printf("ok");
    for(i=0;i<SIZE;i++)
        printf("%5d",a[i]);
    return 0;
}

 

posted @ 2013-04-03 10:18  天晴会下雨  阅读(104)  评论(0编辑  收藏  举报