Pagini recente » Cod sursa (job #1617199) | Cod sursa (job #2328174) | Cod sursa (job #1747558) | Cod sursa (job #2300653) | Cod sursa (job #2129193)
# include <fstream>
# define DIM 500010
using namespace std;
ifstream fin("algsort.in");
ofstream fout("algsort.out");
int a[DIM],b[DIM],c[DIM],v[DIM],n,i;
void interclaseaza(int c[],int a[],int b[]){
int i=1,j=1;
c[0]=0;
while(i<=a[0]&&j<=b[0])
if(a[i]<b[j])
c[++c[0]]=a[i++];
else
c[++c[0]]=b[j++];
for(;i<=a[0];i++)
c[++c[0]]=a[i];
for(;j<=b[0];j++)
c[++c[0]]=b[j];
}
void sorteaza(int st,int dr){
if(st==dr)
return;
int mij=(st+dr)/2;
sorteaza(st,mij);
sorteaza(mij+1,dr);
a[0]=b[0]=0;
int i;
for(i=st;i<=mij;i++)
a[++a[0]]=v[i];
for(;i<=dr;i++)
b[++b[0]]=v[i];
interclaseaza(c,a,b);
for(i=st;i<=dr;i++)
v[i]=c[i-st+1];
}
int main () {
fin>>n;
for(i=1;i<=n;i++)
fin>>v[i];
sorteaza(1,n);
for(i=1;i<=n;i++)
fout<<v[i]<<" ";
fout<<"\n";
return 0;
}