Cod sursa(job #2900748)

Utilizator maria10Cioclov Maria maria10 Data 12 mai 2022 08:47:34
Problema Sortare prin comparare Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.69 kb
#include <fstream>
using namespace std;
ifstream fin("algsort.in");
ofstream fout("algsort.out");
int n, v[500005],a[500005];

void mergesort(int st, int dr)
{
    if(st>=dr) return;

    int m = st+(dr-st)/2;

    mergesort(st, m);
    mergesort(m+1, dr);

    int i=st, j=m+1, k=st-1;
    while(i<=m && j<=dr)
        if(v[i]<v[j])
            a[++k]=v[i], i++;
        else a[++k]=v[j], j++;

    while(i<=m)
        a[++k]=v[i], i++;

    while(j<=dr)
        a[++k]=v[j], j++;

    for(int i=st;i<=dr;i++)
        v[i] = a[i];

}

int main()
{
    fin>>n;
    for(int i=1;i<=n;i++) fin>>v[i];

    mergesort(1,n);

    for(int i=1;i<=n;i++) fout<<v[i]<<" ";
}