#include <iostream>
#include <string.h>
#include <cstdio>
using namespace std;
void _merge(int* arr,int L,int M,int R){
int leftSize = M-L+1;
int rightSize = R-M;
int left[leftSize];
int right[rightSize];
for(int i=L;i<=M;i++){
left[i-L] = arr[i];
}
for(int i=M+1;i<=R;i++){
right[i-M-1] = arr[i];
}
int i = 0,j = 0,k = L;
while(i<leftSize && j<rightSize){
if(left[i]<right[j]){
arr[k] = left[i];
i++; k++;
}else{
arr[k] = right[j];
j++; k++;
}
}
while(i<leftSize){
arr[k] = left[i];
k++; i++;
}
while(j<rightSize){
arr[k] = right[j];
k++; j++;
}
}
void mergeSort(int* arr, int L, int R){
if(L==R)
return;
int M = (L+R)/2;
mergeSort(arr,L,M);
mergeSort(arr,M+1,R);
_merge(arr,L,M,R);
}
void solve(){
int arr[10] = {99,340,110,50,5600,800000,0,9,11111,2222222};
int length = 10;
//归并排序
mergeSort(arr,0,length-1);
for(int i=0;i<length;i++)
printf("%d ",arr[i]);
}
int main()
{
solve();
return 0;
}