Cod sursa(job #1035420)

Utilizator cbiancaCojocaru Bianca cbianca Data 18 noiembrie 2013 15:58:15
Problema Sortare prin comparare Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.75 kb
#include<cstdio>
#define Nmax 500005
using namespace std;
int a[Nmax],b[Nmax];
int n;
void merge(int s, int d)
{
     if(s<d)    
     {int m=(s+d)/2,i=s,j=m+1,k=s; 
     merge(s,m);     
     merge(m+1,d);
     for(;i<=m && j<=d;k++) 
       b[k]=(a[i]>a[j])? a[j++]: a[i++];
     for(;i<=m;i++,k++) b[k]=a[i]; 
     for(;j<=d;j++,k++) b[k]=a[j];
     for(i=s;i<=d;i++) a[i]=b[i];
    }
}int main()
{    
    freopen("algsort.in","rt",stdin);
    freopen("algsort.out","wt",stdout);
    scanf("%d",&n); 
    for(register int i=1;i<=n;i++)
        scanf("%d",&a[i]);   
    merge(1,n);   
    for(register int i=1;i<=n;i++) 
      printf("%d ",a[i]);   
    printf("\n");   
    return 0;
}