获得一个2n数组中的N个元素,使得该N个元素与剩余元素和最小

来源:互联网 发布:sql查询语句实例 编辑:程序博客网 时间:2024/05/16 08:09
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;}}

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