#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
void Merge(vector<int>& a,vector<int>& b,int L,int M,int R)
{
int bL =L;
int i=L,j = M-1;
int m = M,n = R;
while( i <= j && m <= n)
{
if(a[i]<=a[m])
{
b[bL] = a[i];
bL++;
i++;
}
else
{
b[bL] = a[m];
bL++;
m++;
}
}
while(i<=j)
{
b[bL] = a[i];
bL++;
i++;
}
while(m<=n)
{
b[bL] = a[m];
bL++;
m++;
}
}
void MergeSort(vector<int>& a,vector<int>& b,int L,int R)
{
if(L<R)
{
int M = (L+R)/2;
MergeSort(a,b,L,M-1);
MergeSort(a,b,M,R-1);
Merge(a,b,L,M+1,R-1);
}
}
int main()
{
vector<int> a(10);
vector<int> b(10);
for(int i =0;i<a.size();i++)
a[i] = rand()%100;
for(int i =0;i<a.size();i++)
cout<<a[i]<<'/t';
MergeSort(a,b,0,a.size());
for(int i =0;i<b.size();i++)
cout<<b[i]<<'/t';
system("pause");
return 0;
}