Cod sursa(job #2620873)

Utilizator ValentinBaluIonut Valentin Balu ValentinBalu Data 29 mai 2020 19:52:16
Problema Sortare prin comparare Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.82 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("algsort.in");
ofstream out("algsort.out");
int v[500001],w[500001],n;
void mergeSort(int v[],int st,int dr){
    if(st<dr){
        int mijloc=(st+dr)/2;
        mergeSort(v,st,mijloc);
        mergeSort(v,mijloc+1,dr);
        int i=st,j=mijloc+1,k=0;
        while(i<=mijloc and j<=dr)
            if(v[i]<v[j])
                w[++k]=v[i++];
            else
                w[++k]=v[j++];
        while(i<=mijloc)
            w[++k]=v[i++];
        while(j<=dr)
            w[++k]=v[j++];
        i=1;
        for(j=st;j<=dr;j++ and i++)
            v[j]=w[i];
    }
}
int main() {
    in>>n;
    for(int i=0;i<n;i++)
        in>>v[i];
    mergeSort(v,0,n-1);
    for(int i=0;i<n;i++)
        out<<v[i]<<" ";
    return 0;
}