题目:120.给定一个数组input[],如果数组长度n为奇数,则将数组中最大的元素放到 output[]数组最中间的位置,如果数组长度n为偶数,则将数组中最大的元素放到 output[]数组中间两个位置偏右的那个位置上,然后再按从大到小的顺序,依次在第一个位置的两边,按照一左一右的顺序,依次存放剩下的数。(2012)
例如:input[] = {3, 6,1, 9, 7} output[] = {3, 7, 9, 6,1}; input[] = {3, 6, 1, 9, 7, 8}
output[] = {1, 6, 8, 9, 7,3}
## 函数接口 voidsort(int input[[, int n, int output[])
#include<iostream>
using namespace std;
void bublesort(int a[],int len)
{
int tmp;
for(int i=0;i<len-1;i++)
for(int j=0;j<len-1-i;j++)
if(a[j]<a[j+1])
{
tmp=a[j];
a[j]=a[j+1];
a[j+1]=tmp;
}
}
void selectsort(int a[],int len)
{
int i,j,tmp;
for(i=0;i<len-1;i++)
for(j=i+1;j<len;j++)
if(a[i]<a[j])
{
tmp=a[i];
a[i]=a[j];
a[j]=tmp;
}
}
void sort(int input[],int n,int output[])
{
selectsort(input,n);
//for(int i=0;i<n;i++)
//cout<<input[i]<<" ";
int mid=n/2;
output[mid]=input[0];
int k=1;
for(int i=1;i<=n/2;i++)
{
output[mid-i]=input[k++];
if(k<n)
output[mid+i]=input[k++];
}
output[k]='\0';
}
int main()
{
int n;
int input[100],output[100];
cin>>n;
for(int i=0;i<n;i++)
cin>>input[i];
sort(input,n,output);
for(int i=0;i<n;i++)
cout<<output[i]<<" ";
}