首页 > 代码库 > 快速排序代码

快速排序代码

#include<stdio.h>#include<stdlib.h>#include<time.h>int RandomPartition(int *A,int beg,int end){    if(A == NULL || beg>end)    {        exit(0);    }    int i=beg;    int j=end;    int k=beg+rand()%(end-beg+1);    int temp=A[beg];    A[beg]=A[k];    A[k]=temp;    int s=A[beg];    while(i<j)    {        while(i<j && A[j]>s)        {            --j;        }        if(i<j)        {            A[i]=A[j];            ++i;//注意        }        while(i<j && A[i]<s)        {            ++i;        }        if(i<j)        {            A[j]=A[i];            --j;//注意        }    }    A[i]=s;    return i;}void QuickSort(int *A,int beg,int end){    if(beg >= end)//注意    {        return;    }    int k=RandomPartition(A,beg,end);    QuickSort(A,beg,k-1);    QuickSort(A,k+1,end);}int main(){    int A[]={14,543,42,665,43,23,65,12,424};    int len = sizeof(A)/sizeof(int);    QuickSort(A,0,len-1);    for(int i=0;i<len;i++)    {        printf("%d ",A[i]);    }    printf("\n");    return 0;}

 

快速排序代码