Cod sursa(job #271531)

Utilizator jeanFMI - Petcu Ion Cristian jean Data 5 martie 2009 14:52:36
Problema Sortare prin comparare Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.68 kb
#include<fstream>
using namespace std;
int a[500010],n,i;

void interclasare(int p, int m, int q)

{  int i=p, j=m+1, k=0;

 int b[500010];

  while(i<=m&&j<=q)

    if(a[i]<a[j]) b[k++]=a[i++];

      else b[k++]=a[j++];

   while(i<=m) b[k++]=a[i++];
   while(j<=q) b[k++]=a[j++];

   for(i=p; i<=q; i++)

    a[i]=b[i-p];
}


void msort(int p, int q)

{ if(q>p)

  { int m=(p+q)/2;

     msort(p,m);

     msort(m+1,q);

     interclasare(p,m,q);
   }
}

int main()

{
ifstream f("algsort.in");
ofstream g("algsort.out");
f>>n;
for(i=1;i<=n;i++) f>>a[i];
msort(1,n);
for(i=1;i<=n;i++) g<<a[i]<<" ";
f.close();
g.close();
return 0;
}