Pagini recente » Cod sursa (job #1916546) | Cod sursa (job #2378321) | Cod sursa (job #1462321) | Cod sursa (job #1616456) | Cod sursa (job #1049278)
#include <fstream>
using namespace std;
ifstream f("sort.in");
ofstream g("sort.out");
int n,v[500011],c[500011];
void merge(int p,int u){
int i,j,m;
if (p < u){
m = p+(u-p)/2;
merge(p,m);
merge(m+1,u);
i=p,j=m+1;
int k = p-1;
while(i<=m && j<=u)
if (v[i] < v[j])
c[++k] = v[i++];
else
c[++k] = v[j++];
for(;i<=m;i++)
c[++k]=v[i];
for(;j<=u;j++)
c[++k]=v[j];
for(i=p;i<=u;i++)
v[i]=c[i];
}
}
int main(void){
register int i;
f>>n;
for(i=1;i<=n;i++)
f>>v[i];
merge(1,n);
for(i=1;i<=n;i++)
g<<v[i]<<" ";
return 0;
}