Pagini recente » Cod sursa (job #1676901) | Cod sursa (job #2514283) | Cod sursa (job #510382) | Cod sursa (job #2695715) | Cod sursa (job #2387217)
#include <fstream>
using namespace std;
ifstream in("algsort.in");
ofstream out("algsort.out");
const int N=500005;
int n,v[N],aux[N];
void citire()
{
in>>n;
for(int i=1;i<=n;i++)
in>>v[i];
}
void afisare()
{
for(int i=1;i<=n;i++)
out<<v[i]<<' ';
}
void Merge(int st,int dr)
{
int m=(st+dr)/2;
for(int i=st,j=m+1,k=st;j<=dr || i<=m;)
{
if(j>dr || (i<=m && v[i]<=v[j]))
aux[k++]=v[i++];
else
aux[k++]=v[j++];
}
for(int i=st;i<=dr;i++)
v[i]=aux[i];
}
void mergesort(int st,int dr)
{
if(st==dr)
return;
int m=(st+dr)/2;
mergesort(st,m);
mergesort(m+1,dr);
Merge(st,dr);
}
int main()
{
citire();
mergesort(1,n);
afisare();
return 0;
}