Pagini recente » Cod sursa (job #2715048) | Cod sursa (job #2281121) | Cod sursa (job #1845120) | Cod sursa (job #1615861) | Cod sursa (job #1385495)
#include <fstream>
#include <algorithm>
#define nmax 500010
using namespace std;
ifstream in("algsort.in");
ofstream out("algsort.out");
int N,V[nmax],A[nmax];
void cit()
{
in>>N;
for(int i=1;i<=N;++i)
in>>V[i];
}
void afis()
{
for(int i=1;i<=N;++i)
out<<V[i]<<" ";
out<<'\n';
}
void mergesort(int st,int dr)
{
int m=(st+dr)/2;
if(st==dr) return;
mergesort(st,m);
mergesort(m+1,dr);
int i=st,j=m+1,k=st;
while(i<=m || j<=dr)
{
if(j>dr || (i<= m && V[i] < V[j])) A[k++]=V[i++];
else A[k++]=V[j++];
}
for(i=st;i<=dr;++i)
V[i]=A[i];
}
int main()
{
cit();
mergesort(1,N);
afis();
in.close();out.close();return 0;
}