Pagini recente » Cod sursa (job #2123387) | Cod sursa (job #2774776) | Cod sursa (job #2703196) | Cod sursa (job #2914888) | Cod sursa (job #1265461)
#include <cstdio>
using namespace std;
FILE *in,*out;
const int N = 500005;
int v[N],aux[N],n;
void mrg(int st , int dr){
int i=st,j,c=st,m;
m = (st+dr)/2;
j = m+1;
while(i <= m && j <= dr)
if(v[i] <= v[j])
aux[c++]=v[i++];
else
aux[c++]=v[j++];
while(i <= m)
aux[c++]=v[i++];
while(j <= dr)
aux[c++]=v[j++];
for(i = st; i <= dr; i++)
v[i]=aux[i];
}
void ms(int st , int dr){
if(st == dr)
return;
int m = (st+dr)/2;
ms(st,m);
ms(m+1,dr);
mrg(st,dr);
}
int main()
{
in = fopen("algsort.in","r");
out = fopen("algsort.out","w");
int n , i;
fscanf(in,"%d",&n);
for(i = 1 ; i <= n ; i++)
fscanf(in,"%d",&v[i]);
ms(1,n);
for(i = 1 ; i <= n ; i++)
fprintf(out,"%d ",v[i]);
fprintf(out,"\n");
return 0;
}