Cod sursa(job #776941)

Utilizator oana_popfmi - pop oana oana_pop Data 10 august 2012 17:51:02
Problema Sortare prin comparare Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.76 kb
#include <fstream>
using namespace std;
ifstream f("algsort.in");
ofstream g("algsort.out");

int a[500002] , n , i;

void merge(int lo ,int m , int hi)
{
     int b[500002];
     int j , k;
     for(i=lo; i<=hi; i++) b[i]=a[i];
     i=lo; j=m+1; k=lo;
     while(i<=m && j<=hi)
     if(b[i]<=b[j]) 
         a[k++]=b[i++];
     else 
         a[k++]=b[j++];  
     while(i<=m) a[k++]=b[i++];    
}

void mergesort(int lo ,int hi)
{
     if(lo<hi)
     {
              int m = (lo+hi)/2;
              mergesort(lo,m);
              mergesort(m+1,hi);
              merge(lo,m,hi);
     }
}


int main()
{    
    
  f>>n;
  for(i=1; i<=n ;i++) f>>a[i];
  mergesort(1,n);
  for(i=1; i<=n; i++) g<<a[i]<<' ';
  return 0;
}