Cod sursa(job #1453250)

Utilizator azkabancont-vechi azkaban Data 23 iunie 2015 09:09:27
Problema Sortare prin comparare Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.64 kb
#include <bits/stdc++.h>
using namespace std;
int n,a[500013],aux[500013],i;

void MergeSort(int st,int dr)
{
 int i,j,k;
 int middle=(st+dr)>>1;
 if (st==dr) return ;
 MergeSort(st,middle);
 MergeSort(middle+1,dr);
 for (i=st, j=middle+1, k=st; i<=middle || j<=dr; )
        if (j>dr || (st<=middle && a[i] < a[j]))  aux[k++]=a[i++];
                                             else aux[k++]=a[j++];
 for (k=st;k<=dr;++k) a[k]=aux[k];
}

int main(void)
{
 ifstream cin("algsort.in");
 ofstream cout("algsort.out");
 cin>>n;
 for (i=1;i<=n;++i) cin>>a[i];
 MergeSort(1,n);
 for (i=1;i<=n;++i) cout<<a[i]<<" ";
 return 0;
}