Cod sursa(job #655013)

Utilizator Laura_MMiclescu Laura Laura_M Data 31 decembrie 2011 16:47:30
Problema Sortare prin comparare Scor 0
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 i, int m, int j)
{
     int b[500005];
     int x=i;
     int k=1; 
     int y=m+1;
     while ((x<=m)&&(y<=j))
       if (a[x]<a[y])
           b[k++]=a[x++];
       else 
           b[k++]=a[y++];
     while (x<=m)
           b[k++]=a[x++];
     while (y<=j)
           b[k++]=a[y++];
     int t=i;
     for (k=i; k<=(j-i)+1; k++)
          a[t++]=b[k];
           
}

void div_imp (int i, int j)
{
     if (i<j)
        {int m=(i+j)/2;
         div_imp(i,m);
         div_imp(m+1,j);
         interclasare(i,m,j);}
}

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