Pagini recente » Cod sursa (job #2644943) | Cod sursa (job #2185034) | Cod sursa (job #1591351) | Cod sursa (job #53652) | Cod sursa (job #1998720)
#include <fstream>
#define nMax 500001
using namespace std;
ifstream fin("algsort.in");
ofstream fout("algsort.out");
int n, v[nMax], aux[nMax];
void mergeSort(int st, int dr)
{
if(dr-st+1<=1)
return;
int mid=st+(dr-st)/2;
mergeSort(st, mid);
mergeSort(mid+1, dr);
int ii=st, jj=mid+1, poz=st;
while(ii<=mid || jj<=dr)
{
if(v[ii]<v[jj])
{
aux[poz++]=v[ii];
ii++;
}
else
{
if(jj>dr)
{
aux[poz++]=v[ii];
ii++;
}
else
{
aux[poz++]=v[jj];
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]<<" ";
}