Cod sursa(job #3153519)

Utilizator BOSSSTEFANPetrescu Ioan Stefan BOSSSTEFAN Data 30 septembrie 2023 00:45:27
Problema Sortare prin comparare Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1 kb
#include <fstream>

using namespace std;
ifstream cin("algsort.in");
ofstream cout("algsort.out");
int v[500001],aux[500001];
void msort(int st, int dr)
{
    if(st<dr)
    {
        int mij=(st+dr)>>1;
        msort(st,mij);
        msort(mij+1,dr);
        int i=st,j=mij+1,k=st;
        while(i<=mij&&j<=dr)
        {
            if(v[i]<=v[j])
            {
                aux[k]=v[i];
                i++;
            }
            else
            {
                aux[k]=v[j];
                j++;
            }
            k++;
        }
        while(i<=mij)
        {
            aux[k]=v[i];
            i++;
            k++;
        }
        while(j<=dr)
        {
            aux[k]=v[j];
            j++;
            k++;
        }
        for(i=st;i<=dr;i++)
            v[i]=aux[i];
    }

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