Pagini recente » Cod sursa (job #2175855) | Cod sursa (job #1129592) | Cod sursa (job #766626) | Cod sursa (job #1835039) | Cod sursa (job #1932450)
#include <fstream>
using namespace std;
ifstream fin("algsort.in");
ofstream fout("algsort.out");
int N;
long long v[500001];
void MergeSort(int p, int m, int q)
{
int i,j,k;
long long b[500001];
i=p;
j=m+1;
k=0;
while(i<=m && j<=q)
if(v[i]<v[j])
b[++k]=v[i++];
else
b[++k]=v[j++];
while(i<=m) b[++k]=v[i++];
while(j<=q) b[++k]=v[j++];
k=0;
for(i=p; i<=q; ++i)
v[i]=b[++k];
}
void divide(int p, int q)
{
if(q>p)
{
int m=(p+q)/2;
divide(p,m);
divide(m+1,q);
MergeSort(p,m,q);
}
}
int main()
{
int i;
fin>>N;
for(i=1; i<=N; ++i) fin>>v[i];
divide(1,N);
for(i=1; i<=N; ++i)
fout<<v[i]<<' ';
return 0;
}