Cod sursa(job #2623848)

Utilizator albertyoAlbert Mindrescu albertyo Data 4 iunie 2020 00:35:54
Problema Sortare prin comparare Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.71 kb
#include <fstream>
#define N 500005
using namespace std;

ifstream fin("algsort.in");
ofstream fout("algsort.out");

int a[N];

void Interclasare(int s,int mij,int d)
{ int b[N],i,j,k=0;
  i=s; j=mij+1;
  while(i<=mij && j<=d)
      if(a[i]<a[j]) b[++k]=a[i++];
      else b[++k]=a[j++];
  while(i<=mij) b[++k]=a[i++];
  while(j<=d) b[++k]=a[j++];

  for(i=s,j=1;j<=k;i++,j++)
      a[i]=b[j];
}

void MS(int s,int d)
{ if(s<d)
    { int mij=(s+d)/2;
      MS(s,mij);
      MS(mij+1,d);
      Interclasare(s,mij,d);
    }
}

int main()
{   int i,n,m;
    fin>>n;
    for(i=1;i<=n;i++)
       fin>>a[i];
    MS(1,n);
    for(i=1;i<=n;i++)
       fout<<a[i]<<" ";
    return 0;
}