#include<stdio.h>
#include<stdlib.h>
#define maxsize 100
typedef struct{
int r[maxsize];
int length;
}SqList;
void sort(SqList &L){
int k=L.length,i,j,first,final;
int d[k]={0};
d[0]=L.r[1];
first=final=0;
for(i=2;i<=k;i++){
if(L.r[i]>d[final]){
final=(final+1)%k;
d[final]=L.r[i];
}else if(L.r[i]<d[first]){
first=(first-1+k)%k;
d[first]=L.r[i];
}else{
j=final;
while(L.r[i]<d[j]){
d[(j+1)%k]=d[j];
j=(j-1)%k;
}
d[(j+1)%k]=L.r[i];
final=(final+1)%k;
}
}
for(i=1,j=first;i<=k;i++,j=(j+1)%k){
L.r[i]=d[j];
}
}
int main(){
SqList L;
int i;
scanf("%d",&L.length);
for(i=1;i<=L.length;i++){
scanf("%d",&L.r[i]);
}
sort(L);
for(i=1;i<=L.length;i++){
printf("%d ",L.r[i]);
}
return 0;
}
输入:
6
45 23 32 67 98 11
输出:
11 23 32 45 67 98