Pagini recente » Cod sursa (job #1813814) | Cod sursa (job #1277350) | Cod sursa (job #56629) | Cod sursa (job #502441) | Cod sursa (job #1851143)
#include <fstream>
#define nMax 500001
using namespace std;
ifstream fin("algsort.in");
ofstream fout("algsort.out");
int n;
int v[nMax], aux[nMax];
void mergesort(int st, int dr)
{
if(st==dr)
return;
int mid=st+(dr-st)/2;
mergesort(st, mid);
mergesort(mid+1, dr);
int i=st, j=mid+1, poz=st-1;
for(; i<=mid && j<=dr;)
{
if(v[i]<v[j])
{
aux[++poz]=v[i];
i++;
}
else
{
aux[++poz]=v[j];
j++;
}
}
for(int ii=i; ii<=mid; ii++)
aux[++poz]=v[ii];
for(int jj=j; jj<=dr; jj++)
aux[++poz]=v[jj];
for(int i=st; i<=dr; i++)
v[i]=aux[i];
}
int main()
{
fin>>n;
for(int i=1; i<=n; i++)
fin>>v[i];
mergesort(1, n);
for(int i=1; i<=n; i++)
fout<<v[i]<<" ";
}