Pagini recente » Cod sursa (job #1446401) | Cod sursa (job #331710) | Cod sursa (job #2772767) | Cod sursa (job #626359) | Cod sursa (job #780389)
Cod sursa(job #780389)
# include <cstdio>
using namespace std;
int a[500005], c[500005], n;
void interc(int st, int mij, int dr)
{int i,j,ct,t;
i = st; j = mij + 1; ct = 0;
while (i <= mij && j <= dr)
{
if (a[i] < a[j]) c[++ct] = a[i++];
else c[++ct] = a[j++];
}
while (i <= mij) c[++ct] = a[i++];
while (j <= dr) c[++ct] = a[j++];
t = st;
for (i = 1; i <= ct; i++)
a[t++] = c[i];
}
void divimp(int st, int dr)
{
if (st < dr){
int mij = (st + dr) / 2;
divimp(st,mij);
divimp(mij + 1,dr);
interc(st,mij,dr);
}
}
int main()
{int i;
freopen("algsort.in","r",stdin);
freopen("algsort.out","w",stdout);
scanf("%d",&n);
for (i = 1; i <= n; i++)
scanf("%d",&a[i]);
divimp(1,n);
for (i = 1; i <= n; i++)
printf("%d",a[i]);
return 0;
}