Cod sursa(job #1879847)

Utilizator antonia.gheorgheGheorghe Antonia antonia.gheorghe Data 15 februarie 2017 10:40:07
Problema Sortare prin comparare Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.84 kb
#include <fstream>

using namespace std;

fstream in ("algsort.in");
ofstream out ("algsort.out");

int a[500010],i,n,b[500010];

void inter (int st,int mij,int dr){

int i,j,k,t;

for(i=st;i<=dr;i++)

         b[i]=a[i];

i=st; j=mij+1; k=st-1;

  while(i<=mij && j<=dr )

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

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

for (t=i; t<=mij; t++)  a[++k]=b[t];

for (t=j; t<=dr; t++)  a[++k]=b[t];

  }

void mergesort ( int st, int dr){

int mij;

if (st!=dr){

            mij=(st+dr)/2;
            mergesort (st,mij);
            mergesort(mij+1,dr);
            inter(st,mij,dr);
            }
}

int main()
{
    in>>n;

    for (i=1; i<=n;i++)

            in>>a[i];

    mergesort(1,n);

    for (i=1 ;i<=n;i++)

            out<<a[i]<<" ";

    return 0;
}