Pagini recente » Cod sursa (job #2666678) | Cod sursa (job #3273769) | Cod sursa (job #2054211) | Cod sursa (job #1265767) | Cod sursa (job #1320580)
#include <cstdio>
int v[100],a[100],n;
void mergesort(int st, int dr)
{
if(st==dr)
return;
int m=(st+dr)/2,i,j,k;
mergesort(st,m);
mergesort(m+1,dr);
j=m+1;
k=st;
for(i=st;i<=m;i++)
{
while(v[j]<v[i] && j<=dr)
{
a[k]=v[j];
k++;
j++;
}
a[k]=v[i];
k++;
}
while(j<=dr)
{
a[k]=v[j];
k++;
j++;
}
for(i=st;i<=dr;i++)
v[i]=a[i];
}
int main()
{
freopen("algsort.in", "r", stdin);
freopen("algsort.out", "w", stdout);
int i;
scanf("%d ", &n);
for(i=1;i<=n;i++)
scanf("%d ", &v[i]);
mergesort(1,n);
for(i=1;i<=n;i++)
printf("%d ", v[i]);
return 0;
}