可以对输入的数据进行快速排序,#include<stdio.h>
#define P printf
int num;
int *middle(int *a,int *b,int *c)
{
int *mid;
if(*a>*b)
{
if(*a<*c)
mid=a;
else if(*c<*b)
mid=b;
else mid=c;
}
else
{
if(*b<*c)mid=b;
else if(*a<*c)mid=c;
else mid=a;
}
return mid;
}
int paixu(int *p,int n)
{int *p1;
int midd,i,j;
i=0;
j=n-1;
p1=middle(&p[0],&p[4],&p[9]);
midd=*p1;
*p1=*p;
while(i<j)
{
while(*(p+j)>midd && i<j)
j--;
if(i<j)
*(p+i)=*(p+j),i++,num++;
while(*(p+i)<midd && i<j)
i++;
if(i<j)
*(p+j)=*(p+i),j--,num++;
}
*(p+i)=midd;
return i;
}
void quikpai(int *p,int n)
{
paixu(p,10);
}
int main()
{
{int i,j;
int a[10]={5,4,3,6,7,8,9,2,1,10};
quikpa(a,10);
for(i=0;i<10;i++)
printf("%d ",a[i]);
printf("num=%d",num);
}
}