Pagini recente » Cod sursa (job #2086970) | Cod sursa (job #2308805) | Cod sursa (job #1065416) | Cod sursa (job #797833) | Cod sursa (job #1081447)
#include <fstream>
#define max 500005
using namespace std;
ifstream cin("algsort.in");
ofstream cout("algsort.out");
void mergesort(int a[max],int st, int m, int dr)
{
int b[max];
int i,j,k;
i=0; j=st;
while (j <= m)
b[i++] = a[j++];
i = 0; k = st;
while (k < j && j <= dr)
if (b[i] <= a[j])
a[k++] = b[i++];
else
a[k++] = a[j++];
while (k < j)
a[k++] = b[i++];
}
void merge(int a[max],int st, int dr)
{
if (st < dr)
{
int m = (st+dr)/2;
merge(a,st, m);
merge(a,m+1, dr);
mergesort(a,st, m, dr);
}
}
int main()
{
int a[max],i,n,st,dr;
cin>>n;
for(i=0; i<n; i++)
cin>>a[i];
st=0; dr=n-1;
merge(a, st, dr);
for(i=0; i<n; i++)
cout<<a[i];
return 0;
}