Cod sursa(job #2001164)

Utilizator HumikoPostu Alexandru Humiko Data 15 iulie 2017 20:31:23
Problema Sortare prin comparare Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.83 kb
#include <fstream>

using namespace std;

ifstream fin ("algsort.in");
ofstream fout ("algsort.out");

int v[500001], rez[500001];

void merge_sort(int st, int dr)
{
    if (st==dr)
        return;
    int mij=(st+dr)/2;
    merge_sort(st, mij);
    merge_sort(mij+1, dr);
    int cnt_st=st;
    int cnt_dr=mij+1;
    for (int i=st; i<=dr; ++i)
    {
        if (cnt_dr>dr || (cnt_st<=mij && v[cnt_st]<=v[cnt_dr]))
        {
            rez[i]=v[cnt_st];
            cnt_st++;
        }
        else
        {
            rez[i]=v[cnt_dr];
            cnt_dr++;
        }
    }
    for (int i=st; i<=dr; ++i)
        v[i]=rez[i];
}



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