Cod sursa(job #2620679)

Utilizator anamaria2602Avram Ana Maria anamaria2602 Data 29 mai 2020 14:39:19
Problema Sortare prin comparare Scor 80
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.93 kb
#include <iostream>
#include <fstream>
#define Maxx 500001
using namespace std;
ifstream f("algsort.in");
ofstream g("algsort.out");
long long tmp[Maxx],A[Maxx],N;
void MergeSort1(long long A[], int st, int dr)
{
    if(st < dr)
    {
        int m = (st + dr) / 2;
        MergeSort1 (A, st, m);
        MergeSort1 (A, m + 1, dr);
        int i = st;
        int j = m + 1;
        int k = 0;
        while (i <= m && j <= dr)
            if( A[i] < A[j])
                tmp[++k] = A[i++];
            else
                tmp[++k] = A[j++];
        while (i <= m)
            tmp[++k] = A[i++];
        while (j <= dr)
            tmp[++k] = A[j++];
        j = 1;
        for (i = st; i <= dr ; i ++ && j++)
            A[i] = tmp[j];
    }
}
int main()
{
    f >> N;
    for ( int i=1;i<=N;i++ )
        f >> A[i];
    MergeSort1(A,1,N);
    for ( int i=1;i<=N;i++ )
        g << A[i] << " ";
    return 0;
}