Cod sursa(job #2371153)

Utilizator TeddyDinutaDinuta Eduard Stefan TeddyDinuta Data 6 martie 2019 16:15:47
Problema Sortare prin comparare Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.75 kb
#include <bits/stdc++.h>

using namespace std;
ifstream in("algsort.in");
ofstream out("algsort.out");
int n,a[500100];
void intercls(int st,int m,int dr)
{
    int i,j,k;
    int y[500100];
    i=st;
    j=m+1;
    k=0;
    while(i<=m&&j<=dr)
        if(a[i]<a[j]) y[++k]=a[i],i++;
        else y[++k]=a[j],j++;
    while(i<=m)
        y[++k]=a[i++];
    while(j<=dr)
        y[++k]=a[j++];
    for(int i=dr;i>=st;i--)
        a[i]=y[k--];
}
void msort(int st,int dr)
{
    if(st<dr)
    {
        int m=(st+dr)/2;
        msort(st,m);
        msort(m+1,dr);
        intercls(st,m,dr);
    }
}
int main()
{
    in>>n;
    for(int i=1;i<=n;i++) in>>a[i];
    msort(1,n);
    for(int i=1;i<=n;i++) out<<a[i]<<" ";
    return 0;
}