Cod sursa(job #1050322)

Utilizator Iustin_BulimarFMI Iustin Bulimar Iustin_Bulimar Data 8 decembrie 2013 14:49:51
Problema Sortare prin comparare Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.6 kb
#include <fstream>
using namespace std;
ifstream cin("algsort.in");
ofstream cout("algsort.out");

int n, i, v[500001], a[500001];

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

int main()
{
    cin>>n;
    for(i=1; i<=n; i++) cin>>v[i];
    merge_sort(v, 1, n);
    for(i=1; i<=n; i++) cout<<v[i]<<" ";
    return 0;
}