Cod sursa(job #2847695)

Utilizator SerbanCaroleSerban Carole SerbanCarole Data 11 februarie 2022 11:43:13
Problema Sortare prin comparare Scor 40
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.9 kb
#include <iostream>
#include <cstring>
#include <fstream>
using namespace std;

void interclasare(long long v[],long st,long dr){
    int m=(st+dr)/2;
    int i=st, j=m+1, k=st, aux[50000];
    while(i<=m && j<=dr){
        if(v[i]<v[j]){
            aux[k++]=v[i++];
        }else{
            aux[k++]=v[j++];
        }
    }
    while(i<=m) aux[k++]=v[i++];
    while(j<=dr) aux[k++]=v[j++];
    for(k=st;k<=dr;k++){
        v[k]=aux[k];
    }
}

void ms(long long v[],long st,long dr){
    if (st==dr) return;
    int m=(st+dr)/2;
    ms(v,st,m);
    ms(v,m+1,dr);
    interclasare(v,st,dr);
}

int main(){

    ifstream in("algsort.in");
    ofstream out("algsort.out");
    long n;
    long long v[50000];
    in>>n;
    for(long long i=0;i<n;i++) in>>v[i];
    in.close();
    ms(v,0,n);
    for(long long i=1;i<=n;i++) out<<v[i]<< " ";
    out.close();
    return 0;
}