void MaoPao(int * a,int low,int high,bool BMax)
{
if(NULL==a)
{
return ;
}
if(low<high)
{
if(BMax)
{
//开始存放最大值

for(int i=high;i>low;i--)
{
if(a[i]>a[i-1])
{
int tmp=a[i];
a[i]=a[i-1];
a[i-1]=tmp;

}
}
}
else
{
//末尾存放最大值
for(int i=low;i<high;i++)
{
if(a[i]>a[i+1])
{
int tmp=a[i];

a[i]=a[i+1];
a[i+1]=tmp;

}
}
}
}
}
int main()
{
int start=0,end=sizeof(a)/sizeof(int)-1;
bool mark=false;
for(int i=0;i<sizeof(a)/sizeof(int)-1;i++)
{
//我们需要遍历整个数组
if(!mark)
{
MaoPao(a,start,end,true);
mark=true;
start++;
}
else
{
MaoPao(a,start,end,false);
end--;
mark=false;
}

}
for(int i=0;i<sizeof(a)/sizeof(int );i++)
{
cout<<a[i]<<endl;
}
}


即将整个数组进行排序,获得前后都为大,向中间缩小