Cod sursa(job #3133056)

Utilizator JohnnyFortaPascu Ioan JohnnyForta Data 25 mai 2023 00:46:59
Problema Sortare prin comparare Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.01 kb
#include <iostream>
#include <fstream>

using namespace std;

int n, vec[500000];
ifstream in("algsort.in");
ofstream out("algsort.out");

void mergeSort(int vec[], int p, int u){
    if(p == u){
        return;
    }
    int mij = (u + p) / 2;
        mergeSort(vec, p, mij);
        mergeSort(vec, mij + 1, u);
    int i = p, j = mij + 1, aux[u - p + 1], k = 0;
    while((i <= mij) && (j <=u)){
        if(vec[i] < vec[j]){
            aux[k] = vec[i];
            i++;
        }else{
            aux[k] = vec[j];
            j++;
        }
        k++;
    }
    while(i <= mij){
        aux[k] = vec[i];
        k++;
        i++;
    }
    while(j <= u){
        aux[k] = vec[j];
        k++;
        j++;
    }
    for(int z = p; z <= u; z++){
        vec[z] = aux[z - p];
    }
}

int main(){
    in>>n;
    for(int i = 0; i < n; i++){
        in>>vec[i];
    }
    mergeSort(vec, 0, n - 1);
    for(int i = 0; i < n; i++){
        out<<vec[i]<<' ';
    }
    in.close();
}