Pagini recente » Cod sursa (job #987596) | Cod sursa (job #2890995) | Cod sursa (job #1860494) | Cod sursa (job #1529151) | Cod sursa (job #361395)
Cod sursa(job #361395)
#include <stdio.h>
int v[100],aux[100];
void inter(int l,int mid,int r)
{
int i=l,j=mid+1,x=0;
do
{
++x;
if (((v[i]<v[j])&&(i<mid+1))||(j>r))
{
aux[x]=v[i];
++i;
}
else
{
aux[x]=v[j];
++j;
}
}
while (x<r-l+1);
for (i=l;i<r+1;i++) v[i]=aux[i-l+1];
}
void merge(int l,int r)
{
if (l==r) return;
int mid=((l+r)/2);
merge(l,mid);
merge(mid+1,r);
inter(l,mid,r);
}
int main()
{
int i,n;
freopen("algsort.in","r",stdin);
freopen("algsort.out","w",stdout);
scanf("%d",&n);
for (i=1;i<n+1;i++) scanf("%d",&v[i]);
merge(1,n);
for (i=1;i<n+1;i++) printf("%d%c",v[i],' ');
return 0;
}