Cod sursa(job #2624480)

Utilizator OrzataAOrzata Andrei OrzataA Data 4 iunie 2020 21:27:53
Problema Sortare prin comparare Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.81 kb
#include <iostream>
#include <fstream>

using namespace std;

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

#define Nr 500001

int N, V[Nr], Temp[Nr];

void MergeSort(int left, int right)
{
    int m = (left + right)/2;
    int i = left, j = m+1, k = left;

    if( left == right )
        return;

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

    while( i <= m || j <= right )
        if( j > right || (i <= m && V[i] < V[j]) )
            Temp[ k++ ] = V[ i++ ];
        else
            Temp[ k++ ] = V[ j++ ];

    for( k = left; k <= right; k++ )
        V[k] = Temp[k];
}

int main()
{
    int i;


    in>>N;
    for( i = 1; i <= N; i++ )
        in>>V[i];

    MergeSort( 1, N );
    for( i = 1; i <= N; i++ )
        out<<V[i]<<" ";

    return 0;
}