排序之快速排序
#include<stdio.h>
int q;
int Parttion(int* a,int p,int r);
void QuickSort(int* a,int p,int r);
int main()
{
int i;
int a[10]={1,4,2,7,3,9,8,6,0,5};
QuickSort(a,0,9);
for(i=0;i<10;i++)
printf("%d ",a[i]);
return 0;
}
int Parttion(int* a,int p,int r)
{
int x=a[r];
int i=p-1;
int j;
int temp;
for(j=p;j<r;j++)
{
if(a[j]<=x)
{
i++;
//Exchange a[i] and a[j];
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}
temp=a[i+1];
a[i+1]=a[r];
a[r]=temp;
return (i+1);
}
void QuickSort(int* a,int p,int r)
{
if(p<r)
{
q=Parttion(a,p,r);
QuickSort(a,p,q-1);
QuickSort(a,q+1,r);
}
}
亲爱的听众朋友我是你的代班DJ

浙公网安备 33010602011771号