Pagini recente » Cod sursa (job #558582) | Cod sursa (job #2739393) | Cod sursa (job #2639982) | Cod sursa (job #1100173) | Cod sursa (job #870275)
Cod sursa(job #870275)
#include<stdio.h>
int n,x[500002],y[500002],i;
int ic(int st, int m, int dr)
{
int i,j,k;
i=st; j=m+1;
k=0;
while(i<=m && j<=dr)
{
k++;
if (x[i]<=x[j]){y[k]=x[i]; i++;}
else {y[k]=x[j]; j++;}
}
while(i<=m){k++;y[k]=x[i];i++;}
while(j<=dr){k++;y[k]=x[j];j++;}
i=st; k=1;
while(i<=dr){x[i]=y[k];i++;k++;}
}
void ms(int st, int dr)
{
int m;
if (st<dr)
{
m=st+(dr-st)/2;
ms(st,m);
ms(m+1,dr);
ic(st,m,dr);
}
}
void tip()
{
int i;
for (i=1;i<=n;i++)
printf("%d ",x[i]);
}
int main()
{
freopen("algsort.in","rt",stdin);
freopen("algsort.out","wt",stdout);
scanf("%d",&n);
for (i=1;i<=n;i++) scanf("%d",x+i);
ms(1,n);
tip();
fclose(stdout);
fclose(stdin);
return 0;
}