Cod sursa(job #2901391)

Utilizator VartonVarts Var Varton Data 13 mai 2022 17:37:29
Problema Sortare prin comparare Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.11 kb
#include <iostream>
#include <fstream>
#include <bits/stdc++.h>
using namespace std;
ifstream is("algsort.in");
ofstream os("algsort.out");


 int v[500005];
 int n,x;
 int v1[500005];

void mergeV( int l, int m, int r){
    int iv1=l, iv2=m+1, iv=l;
    while(iv1<=m && iv2<=r){
        if(v[iv1]<v[iv2]){
            v1[iv] = v[iv1];
            iv++;
            iv1++;
        }
        else
        {
            v1[iv]=v[iv2];
            iv2++;
            iv++;
        }
    }
    while(iv1<=m){
        v1[iv] = v[iv1];
        iv1++;
        iv++;
    }
    while(iv2<=r){
        v1[iv] = v[iv2];
        iv2++;
        iv++;
    }
    for(int j=l; j<=r;j++){
        v[j] = v1[j];
    }
}

void mergeSort(int l, int r){
    if(l>=r)
        return;
    int m = (l+r)/2;
    mergeSort(l,m);
    mergeSort(m+1,r);
    mergeV( l, m ,r);
}

int main()
{
    is>>n;
    for(int i=1; i<=n;i++)
        {
            is>>v[i];
        }

    //sort(v.begin(), v.end(), comp);
    mergeSort(1,n);
    for(int i =1; i<=n; i++)
        os<<v[i]<<" ";
    return 0;
}