Cod sursa(job #3253639)

Utilizator ilincaSSirbu Ilinca Maria ilincaS Data 3 noiembrie 2024 22:01:32
Problema Sortare prin comparare Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.92 kb
#include <fstream>
using namespace std;

ifstream cin("algsort.in");
ofstream cout("algsort.out");

int v[500005];
int u[500005];

void interclass(int l, int m, int r)
{
    int i=l, j=m+1;
    for(int z=l; z<=r; z++)
    {
        if(i==m+1 || (j<=r && v[i]>v[j]))
        {
            u[z]=v[j];
            j++;
        }
        else
        {
            u[z]=v[i];
            i++;
        }
    }
    for(int z=l; z<=r; z++)
    {
        v[z]=u[z];
        u[z]=0;
    }

}

void mergesort(int left, int right)
{
    if(left==right)
        return;
    int mid=(right+left)/2;
    mergesort(left, mid);
    mergesort(mid+1, right);
    interclass(left, mid, right);
}



int main()
{
    int n;
    cin>>n;
    for(int i=0; i<n; i++)
    {
        cin>>v[i];
    }
    mergesort(0, n-1);
    for(int i=0; i<n; i++)
    {
        cout<<v[i]<<" ";
    }


    return 0;
}