Cod sursa(job #1453253)

Utilizator azkabancont-vechi azkaban Data 23 iunie 2015 09:18:44
Problema Sortare prin comparare Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.68 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)/2;
 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
        if (i>middle || (j<=dr && a[i] >= a[j]))  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;
}