Cod sursa(job #1886468)

Utilizator EdgeLordXDOvidiuPita EdgeLordXD Data 20 februarie 2017 21:48:00
Problema Sortare prin comparare Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.78 kb
#include <iostream>
#include <fstream>
using namespace std;
int a[500000];
long long n;
void inter(int i, int m, int j){
    int b[500000];
    long long 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++];
    long long t=i;
    for(k=1; k<=(j-i)+1; ++k)
        a[t++]=b[k];
}
void mij(int i, int j){
    if(i<j){
        int m=(i+j)/2;
        mij(i,m);
        mij(m+1,j);
        inter(i,m,j);
    }
}
int main(){
	freopen("algsort.out", "w", stdout);
	freopen("algsort.in", "r", stdin);
    cin>>n;
    for(int i=1; i<=n; ++i) cin>>a[i];
    mij(1,n);
    for(int i=1; i<=n; ++i) cout<<a[i]<<" ";
}