Cod sursa(job #2850125)

Utilizator SerbanCaroleSerban Carole SerbanCarole Data 16 februarie 2022 12:00:42
Problema Sortare prin comparare Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.86 kb
#include <iostream>
#include <cstring>
#include <fstream>
using namespace std;
int aux[500000], v[500000];

void interclasare(long st,long dr){
    int m=(st+dr)/2;
    int i=st, j=m+1, k=st;
    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(int v[], int st,int dr){
    if (st==dr) return;
    int m=(st+dr)/2;
    ms(v,st,m);
    ms(v,m+1,dr);
    interclasare(st,dr);
}

int main(){

    ifstream in("algsort.in");
    ofstream out("algsort.out");
    int N;
    cin>>N;
    for(int i=0;i<N;i++) cin>>v[i];
    in.close();
    ms(v,0,N-1);
    for(int i=0;i<N;i++) cout<<v[i]<< " ";
    out.close();
    return 0;
}