Cod sursa(job #2673683)

Utilizator GaByxDTodor Marian Gabriel GaByxD Data 17 noiembrie 2020 15:26:23
Problema Sortare prin comparare Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.8 kb
#include<iostream>
#include<fstream>

using namespace std;

ifstream f ("algsort.in");
ofstream g("algsort.out");

int a[500001],n;

void interclas(int i,int m,int j)
{
    int b[500001];
    int x=i,k=1,y=m+1;

    while(x<=m && y<=j)
        if (a[x]<a[y])
            b[k++]=a[x++];
        else
            b[k++]=a[y++];

    while (x<=m)
        b[k++]=a[x++];
    while (y<=j)
        b[k++]=a[y++];

    int t=i;
    for (k=1;k<=(j-i)+1;k++)
        a[t++]=b[k];
}

void divimp(int i,int j)
{
    if (i<j)
    {
        int m=(i+j)/2;
        divimp(i,m);
        divimp(m+1,j);
        interclas(i,m,j);
    }
}

int main()
{
    f>>n;
    for(int i=1;i<=n;i++)
        f>>a[i];
    divimp(1,n);
    for(int i=1;i<=n;i++)
        g<<a[i]<<' ';
    return 0;
}