#include<iostream>
#include<stdio.h>
#define maxn 100
using namespace std;
void merge(int arr[],low,mid,high){
int i,j,k;
int n1=mid-low+1;
int n2=high-mid;
int L[n1],R[n2];
for(i=0;i<n1;i++){
L[i]=arr[low+i];
}
for(j=0;j<n2;j++){
R[j]=arr[mid+1+j];
}
i=0;
j=0;
k=low;
while(i<n1&&j<n2){
if(L[i]<=R[j]){
arr[k]=L[i];
k++;
i++;
}else{
arr[k]=R[j];
k++;
j++;
}
}
while(i<n1){
arr[k]=L[i];
k++;
i++;
}
while(j<n2){
arr[k]=R[j];
k++;
j++;
}
}
void mergeSort(int arr[],int low,int high){
if(low<high){
int mid=(low+high)/2;
mergeSort(arr,low,mid);
mergeSort(arr,mid+1,high);
merge(arr,low,mid,high);
}
}
int main(){
int arr[maxn];
cout<<"请输入一组数据:";
int i; //记载输入了多少个数
for(i=0;;i++){
cin>>arr[i];
if(getchar()=='\n'){
break;
}
}
mergeSort(arr,0,i);
for(int j=0;j<=i;j++){
cout<<arr[j]<<" ";
}
return 0;
}