Cod sursa(job #2615335)

Utilizator raresmateiuMateiu Rares-Ioan raresmateiu Data 14 mai 2020 13:21:00
Problema Sortare prin comparare Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.86 kb
#include <iostream>
#include <fstream>

using namespace std;

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

int v[900000], t[900000], n;
void MergeSort(int v[], int  st, int dr)
{
    if(st<dr)
    {
        int m = (st+dr)/2;
        MergeSort(v,st,m);
        MergeSort(v,m+1,dr);
        //Interclasare:
        int i = st, j = m+1, k = 0;
        while (i <= m && j<= dr)
            if(v[i] < v[j])
                t[++k] = v[i++];
            else
                t[++k] = v[j++];
        while(i <= m)
            t[++k] = v[i++];
        while(j <= dr)
            t[++k] = v[j++];
        for(i = st, j=1; i<=dr; i++, j++)
            v[i] = t[j];
    }
}

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