Pagini recente » Cod sursa (job #725141) | Cod sursa (job #1281449) | Cod sursa (job #1858964) | Cod sursa (job #695786) | Cod sursa (job #1049255)
#include <fstream>
using namespace std;
ifstream f("algsort.in");
ofstream g("algsort.out");
int n,v[500011];
void merge(int p,int u){
int c[500011],i,j;
c[0]=0;
if(p<u){
merge(p,p+(u-p)/2);
merge(p+(u-p)/2+1,u);
}
i=p,j=p+(u-p)/2+1;
while(i<=p+(u-p)/2 && j<=u)
c[++c[0]]=(v[i]>v[j]?v[j++]:v[i++]);
for(;i<=p+(u-p)/2;i++)
c[++c[0]]=v[i];
for(;j<=u;j++)
c[++c[0]]=v[j];
for(i=p,j=1;i<=u;i++,j++)
v[i]=c[j];
}
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;
}