Pagini recente » Cod sursa (job #704311) | Cod sursa (job #822183) | Cod sursa (job #424172) | Cod sursa (job #902729) | Cod sursa (job #913294)
Cod sursa(job #913294)
#include<cstdio>
using namespace std;
int n,v[500005],k;
void interclasare(int pr,int mij1,int ul)
{
k=0;
int i=pr;
int j=mij1+1;
int y[500005];
while(i<=mij1 && j<=ul)
{
if(v[i]<v[j])
{
y[++k]=v[i];
i++;
}
else
{
y[++k]=v[j];
j++;
}
}
for(;i<=mij1;i++)
y[++k]=v[i];
for(;j<=ul;j++)
y[++k]=v[j];
for(i=1;i<=k;i++ )
v[pr+i-1]=y[i];
}
void sortare(int p,int u)
{
if(u-p>=1)
{
int mij=(p+u)/2;
sortare(p,mij);
sortare(mij+1,u);
interclasare(p,mij,u);
}
}
int main()
{
freopen("algsort.in","r",stdin);
freopen("algsort.out","w",stdout);
scanf("%d",&n);
for(int i=1;i<=n;i++)
scanf("%d",&v[i]);
sortare(1,n);
for(int i=1;i<=n;i++)
printf("%d ",v[i]);
return 0;
}