Cod sursa(job #2906460)

Utilizator PepiNedelcu Radu Pepi Data 26 mai 2022 08:42:42
Problema Sortare prin comparare Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.84 kb
#include <fstream>

using namespace std;

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

const int MAX = 500001;
int v[MAX],v1[MAX];



void mergeSort(int v[], int st, int dr) {
    if (st < dr) {
        int mij = (st +dr) / 2;
        mergeSort(v, st, mij);
        mergeSort(v, mij + 1, dr);
        int i = st, j = mij + 1, k = st;
        while(i <= mij || j <= dr)
        {
            if(j > dr || (i <= mij && v[i] < v[j]))
                v1[k++] = v[i++];
            else
                v1[k++] = v[j++];
        }
        for(i = st; i <= dr; i++)
            v[i] = v1[i];
    }
}


void printvect(int v[], int N) {
    for (int i = 1; i <= N; i++)
        fout << v[i] << " ";
}

int main()
{
    int N;
    fin >> N;
    for (int i = 1; i <= N; i++)
        fin >> v[i];
    mergeSort(v,1,N);
    printvect(v, N);
    return 0;
}