Pagini recente » Cod sursa (job #2397208) | Cod sursa (job #2701063) | Cod sursa (job #112308) | Cod sursa (job #2782650) | Cod sursa (job #871436)
Cod sursa(job #871436)
#include<stdio.h>
#define Nmax 500002
using namespace std;
int n;
int a[Nmax],b[Nmax];
void citire()
{
int i;
scanf("%d",&n);
for(i=1;i<=n;++i)
scanf("%d",&a[i]);
}
void merge_sort(int s,int f)
{
int i,j,k,m;
m=(s+f) >> 1; //jumatate
if(s==f)
return;
merge_sort(s,m);
merge_sort(m+1,f);
i=s;
j=m+1;
for(k=s;k<=s+f;++k)
if(j>f || (i<=m && a[i]<a[j]))
{
b[k]=a[i];
++i;
}
else
{
b[k]=a[j];
++j;
}
for(i=s;i<=f;++i)
a[i]=b[i];
}
void rezolv()
{
int i;
merge_sort(1,n);
for(i=1;i<=n;++i)
printf("%d ",a[i]);
}
int main()
{
freopen("algsort.in","r",stdin);
freopen("algsort.out","w",stdout);
citire();
rezolv();
return 0;
}