#include <iostream>
#include<set>
using namespace std;
#define N 100
int main(int argc, char** argv) {
int n; //输入需要进行排序的元素个数
cin>>n;
std::multiset<int> s1; //定义一个集合,multiset类型的,此类型元素可以重复
int a[N]; //用于获取用户输入的元素
int b[2]; //b[2]用于存放最小值和最大值,每次取一最小一最大,集合删除此两个元素后,再取最小最大值,指导集合元素空
int c[N]; //用于存放排好序的元素
int count=0;
set<int>::iterator ii;
for(int i=0;i<n;i++){
cin>>a[i];
}
for(int i=0;i<n;i++){ //开始插入元素,数组先获取,在插入到集合中
s1.insert(a[i]);
}
for(ii=s1.begin();ii!=s1.end();ii++)
cout<<(*ii)<<" ";
b[0]=a[0]; //b[0]初始化
b[1]=a[0]; //b[1]初始化
while(s1.size()>0){ //判断集合元素非空
#include<set>
using namespace std;
#define N 100
int main(int argc, char** argv) {
int n; //输入需要进行排序的元素个数
cin>>n;
std::multiset<int> s1; //定义一个集合,multiset类型的,此类型元素可以重复
int a[N]; //用于获取用户输入的元素
int b[2]; //b[2]用于存放最小值和最大值,每次取一最小一最大,集合删除此两个元素后,再取最小最大值,指导集合元素空
int c[N]; //用于存放排好序的元素
int count=0;
set<int>::iterator ii;
for(int i=0;i<n;i++){
cin>>a[i];
}
for(int i=0;i<n;i++){ //开始插入元素,数组先获取,在插入到集合中
s1.insert(a[i]);
}
for(ii=s1.begin();ii!=s1.end();ii++)
cout<<(*ii)<<" ";
b[0]=a[0]; //b[0]初始化
b[1]=a[0]; //b[1]初始化
while(s1.size()>0){ //判断集合元素非空
for(ii=s1.begin();ii!=s1.end();ii++){
if(b[0]>*ii){ //比较大小,集合中的元素依次与b[0]做比较,小的放入b[0]
b[0]=*ii;
}
if(b[1]<*ii){ //比较大小,集合中的元素依次与b[1]做比较,大的放入b[0]
b[1]=*ii;
}
}
if(count<=n/2+1){
if(b[0]>*ii){ //比较大小,集合中的元素依次与b[0]做比较,小的放入b[0]
b[0]=*ii;
}
if(b[1]<*ii){ //比较大小,集合中的元素依次与b[1]做比较,大的放入b[0]
b[1]=*ii;
}
}
if(count<=n/2+1){
c[count]=b[0]; //将每次最小值从前往后赋给数组c
c[n-count-1]=b[1]; //将最大值从后往前赋给数组c
count++;
}
s1.erase(b[0]); //删除选出来的最小值
s1.erase(b[1]); //删除选出来的最大值
}
for(int i=0;i<n;i++){ //输出排好序的数组c
cout<<c[i]<<" ";
}
return 0;
}
c[n-count-1]=b[1]; //将最大值从后往前赋给数组c
count++;
}
s1.erase(b[0]); //删除选出来的最小值
s1.erase(b[1]); //删除选出来的最大值
}
for(int i=0;i<n;i++){ //输出排好序的数组c
cout<<c[i]<<" ";
}
return 0;
}