Cod sursa(job #655027)

Utilizator Laura_MMiclescu Laura Laura_M Data 31 decembrie 2011 17:41:24
Problema Sortare prin comparare Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.95 kb
#include <iostream>
#include <fstream>

using namespace std;

int a[500005], N;

void interclasare (int a[500005], int st, int m, int dr)
{
     int b[500005];
     int i, j, k;
     i=0; j=st;
     while (j<=m)
        b[i++]=a[j++];
     i=0; k=st;
     while ((k<j)&&(j<=dr))
        if (b[i]<=a[j])
           a[k++]=b[i++];
        else
           a[k++]=a[j++];
     while (k<j)  
           a[k++]=b[i++];                       
}

void mergesort (int a[500005], int st, int dr)
{
     if (st<dr)
        {int m=(st+dr)/2;
         mergesort(a,st,m);
         mergesort(a,m+1,dr);
         interclasare(a,st,m,dr);}
}

int main()
{
    ifstream f("algsort.in");
    ofstream g("algsort.out");
    f>>N;    
    for (int p=1; p<=N; ++p)
        f>>a[p];
    mergesort(a,1,N);                  
    for (int p=1; p<=N; ++p)
         g<<a[p]<<" ";
    return 0;     
}