用指针方法对10个整数按最大、最小,次最大、次最小…的顺序排序
void find(int *a,int len)
{
static int inx=0;
int i,imax=0,imin=0,*p=a;
for(i=1,p++;i<len;i++,p++)
{
if(*(a+imin)>*p) imin=i;
if(*(a+imax)<*p) imax=i;
}
if(inx%2==0)
{
i=*(a+imax);
*(a+imax)=*a;
*a=i;
}
else
{
i=*(a+imin);
*(a+imin)=*a;
*a=i;
}
inx++;
}
int main()
{
int a[10]={1,2,3,4,5,6,7,8,9,10};
int i=0;
while(i<10)
{
find(a+i,10-i);
++i;
}
for (i=0;i<10 ;i++ )
printf("%d ",a[i]);
return 0;
}