Cod sursa(job #3317314)

Utilizator Vlad10Vlad Negut Vlad10 Data 23 octombrie 2025 09:44:06
Problema Sortare prin comparare Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.93 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin ("algsort.in");
ofstream fout ("algsort.out");
int v[500001];
int aux[500001];
void interclass(int v[], int st, int dr){
    int m = (st+dr)/2, i = st, j=m+1, k = st;
    while(j<=dr&&i<=m){
        if(v[j]>v[i]){
            aux[k++]=v[i++];
        }else{
            aux[k++] = v[j++];
        }
    }
    while(i<=m){
        aux[k++] = v[i++];
    }
    while(j<=dr){
        aux[k++] = v[j++];
    }
    for(int l=st;l<=dr;l++){
        v[l] = aux[l];
    }
}
void mergesort(int a[], int st, int dr){
    int m = (st+dr)/2;
    if(st==dr)
        return;
    mergesort(a, st, m);
    mergesort(a, m+1, dr);
    interclass(a, st, dr);
}
int main()
{
    int n;
    fin>>n;
    for(int i=1;i<=n;i++){
        fin>>v[i];
    }
    mergesort(v, 1, n);
    for(int i=1;i<=n;i++){
        fout<<v[i]<<' ';
    }
    return 0;
}