用指针方法对10个整数按最大、最小,次最大、次最小…的顺序排序

用指针方法对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; 
}