Cod sursa(job #3253391)

Utilizator alexkAlexandru Kelemen alexk Data 2 noiembrie 2024 14:18:46
Problema Sortare prin comparare Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.83 kb
#include <fstream>
using namespace std;
ifstream cin("algsort.in");
ofstream cout("algsort.out");
const int nmax=500000;
int n, v[nmax+5];
int aux[nmax+5];
void Mergesort(int left, int right)
{
    if(left==right)return;
    int mid=(left+right)/2;
    Mergesort(left, mid);
    Mergesort(mid+1, right);
    int i=left, j=mid+1, k=left;
    while(i<=mid && j<=right)
    {
        if(v[i]<v[j])
           aux[k++]=v[i++];
        else
           aux[k++]=v[j++];
    }
    while(i<=mid)
       aux[k++]=v[i++];
    while(j<=right)
       aux[k++]=v[j++];
    for(k=left;k<=right;k++)
    {
        v[k]=aux[k];
    }
}
int main()
{
    cin>>n;
    for(int i=1;i<=n;i++)
    {
        cin>>v[i];
    }
    Mergesort(1, n);
    for(int i=1;i<=n;i++)
    {
        cout<<v[i]<<' ';
    }
    return 0;
}