Pagini recente » Cod sursa (job #249833) | Cod sursa (job #2356351) | Cod sursa (job #487459) | Cod sursa (job #1016581) | Cod sursa (job #1020428)
#include <fstream>
using namespace std;
ifstream cin("algsort.in");
ofstream cout("algsort.out");
void merge(int v[], int st, int m, int dr)
{
int i=st, j=m, x=st-1, c[500001];
while(i+j<m+dr+1)
if(i!=m && j!=dr+1)
if(v[i]<v[j])
{
c[++x]=v[i];
i++;
}
else
{
c[++x]=v[j];
j++;
}
else
if(i==m)
{
c[++x]=v[j];
j++;
}
else
{
c[++x]=v[i];
i++;
}
for(i=st; i<=x; i++) v[i]=c[i];
}
void msort(int v[], int st, int dr)
{
int m;
if(st<dr)
{
m=(st+dr)/2;
msort(v, st, m);
msort(v, m+1, dr);
merge(v, st, m+1, dr);
}
}
int n, i, v[500001];
int main()
{
cin>>n;
for(i=1; i<=n; i++) cin>>v[i];
msort(v, 1, n);
for(i=1; i<=n; i++) cout<<v[i]<<" ";
return 0;
}