Cod sursa(job #1503240)

Utilizator vladutz15FMI Cornoiu Vlad vladutz15 Data 15 octombrie 2015 19:27:59
Problema Sortare prin comparare Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.7 kb
#include <iostream>
#include <fstream>

#define NMAX 500010
using namespace std;

ifstream f("algsort.in");
ofstream g("algsort.out");

int n,i,v[NMAX],b[NMAX];

void Merge_sort(int left, int right)
{
    int m,i,j,k;
    m=(left+right)>>1;
    if (left==right) return;

    Merge_sort(left,m);
    Merge_sort(m+1,right);

    for(i=left, j=m+1, k=left; i<=m || j<=right;)
    {
        if (j>right || (i<=m && v[i]<v[j]))
            b[k++]=v[i++];
        else b[k++]=v[j++];
    }
    for(k=left;k<=right;k++)
        v[k]=b[k];
}

int main()
{
    f>>n;
    for(i=1;i<=n;i++)
        f>>v[i];
    Merge_sort(1,n);
    for(i=1;i<=n;i++)
        g<<v[i]<<" ";
    return 0;
}