Cod sursa(job #279473)

Utilizator mihai_floreaFlorea Mihai Alexandru mihai_florea Data 12 martie 2009 20:38:57
Problema Sortare prin comparare Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.63 kb
#include <fstream>
using namespace std;
const int NMAX=500001;
int N,a[NMAX],b[NMAX];
ifstream f("algsort.in");
ofstream g("algsort.out");
void merge(int ls,int ld){
     if (ls==ld) return;
     int i,j,mij=(ls+ld)/2,k;
     merge(ls,mij);
     merge(mij+1,ld);
     for (i=ls,j=mij+1,k=ls-1;i<=mij || j<=ld;)
       if ( (i<=mij && a[i]<=a[j]) || j>ld)
          b[++k]=a[i++];
         else            
          b[++k]=a[j++];
    for (i=ls;i<=ld;++i) a[i]=b[i];      
    }
int main(){
    int i;
    f>>N;
    for (i=1;i<=N;++i) f>>a[i];
    merge(1,N);
    for (i=1;i<=N;++i) g<<a[i]<<' ';
    return 0;
    }