Cod sursa(job #2878823)

Utilizator andreibrosPeta Andrei Mathias andreibros Data 27 martie 2022 21:23:36
Problema Sortare prin comparare Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.86 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("algsort.in");
ofstream out("algsort.out");
int v[500001];
void interclasare(int st, int dr)
{   int c[500001];
    int m=(st+dr)/2;
    int i=st;
    int j=m+1;
    int k=st;
    while (i<=m && j<=dr)
    {
        if(v[i]<v[j])
            c[k++]=v[i++];
        else
            c[k++]=v[j++];

    }
    while(i<=m)
        c[k++]=v[i++];
    while(j<=dr)
        c[k++]=v[j++];
    for(i=st; i<=dr; i++)
        v[i]=c[i];
}
void divide(int i, int j)
{
     if(i==j)
     {
         return;
     }
     int m=(i+j)/2;
     divide (i,m);
     divide(m+1,j);
     interclasare(i,j);
}
int main()
{
    int n;
    in>>n;
    for(int i=1; i<=n; i++)
        in>>v[i];
    divide(1, n);
    for(int i=1 ;i<=n; i++)
        out<<v[i]<<" ";
    return 0;
}