Cod sursa(job #2538521)

Utilizator Ioana_GaborGabor Ioana Ioana_Gabor Data 4 februarie 2020 20:17:25
Problema Sortare prin comparare Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.73 kb

#include <iostream>
#include <fstream>
#define NMAX 500000

using namespace std;

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

int n,sir[NMAX+5],aux[NMAX+5];

void mergesort(int st,int dr){
    if(st>=dr){
        return;
    }
    int mij=(st+dr)/2;
    mergesort(st,mij);
    mergesort(mij+1,dr);
    int l=0,i=st,j=mij+1;
    while(i<=mij||j<=dr){
        if(i<=mij&&(j>dr||sir[i]<=sir[j])){
            aux[++l]=sir[i++];
        }else{
            aux[++l]=sir[j++];
        }
    }
    for(int i=1;i<=l;i++){
        sir[st+i-1]=aux[i];
    }
}

int main(){
    f>>n;
    for(int i=1;i<=n;i++){
        f>>sir[i];
    }
    mergesort(1,n);
    for(int i=1;i<=n;i++){
        g<<sir[i]<<' ';
    }
    f.close();
    g.close();
}