用递归函数的形式快速排序
#include<stdio.h>
int main()
{
int data[10]={6,1,2,7,9,3,4,5,10,8};
quicksort(data,0,9);
int i;
for(i=0;i<10;i++)
printf("%d",data[i]);
printf("\n");
return 0;
}
void quicksort(int data[],int first,int last)
{
int i,j,t,base;
if(first>=last)
return;
base=data[first];
i=first+1;
j=last;
while(i<j)
{
while(data[i]<=base&&i<j)
i++;
while(data[j]>=base&&i<j)
j--;
if(i<j)
{
t=data[i];
data[i]=data[j];
data[j]=t;
}
}
if(data[i]>data[first])
i--;
if(i!=first)
{
data[first]=data[i];
data[i]=base;
}
quicksort(data,first,i-1);
quicksort(data,i+1,last);
}