Cod sursa(job #3238152)

Utilizator cristina_cotorCristina Cotor cristina_cotor Data 21 iulie 2024 18:06:24
Problema Sortare prin comparare Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.04 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin ("algsort.in");
ofstream fout ("algsort.out");
int v[500001],a[500001];
void interclasare (int st, int mij, int dr){
    int i,j,k=0;
    i=st;
    j=mij+1;
    while(i<=mij && j<=dr){
        if(v[i]<v[j]){
            k++;
            a[k]=v[i];
            i++;
        }
        else{
            k++;
            a[k]=v[j];
            j++;
        }
    }
    while(i<=mij){
        k++;
        a[k]=v[i];
        i++;
    }
    while(j<=dr){
        k++;
        a[k]=v[j];
        j++;
    }
    for(i=1;i<=k;i++){
        v[i+st-1]=a[i];
    }
}
void sortare (int st, int dr){
    if(st==dr){
        return;
    }
    else{
        int mij=(st+dr)/2;
        sortare(st,mij);
        sortare(mij+1,dr);
        interclasare(st,mij,dr);
    }
}
int main()
{
    int n,i;
    fin>>n;
    for(i=1;i<=n;i++){
        fin>>v[i];
    }
    sortare(1,n);
    for(i=1;i<=n;i++){
        fout<<v[i]<<" ";
    }
    return 0;
}