Cod sursa(job #1049271)

Utilizator CostanMiriamCostan Miriam CostanMiriam Data 7 decembrie 2013 10:04:24
Problema Sortare prin comparare Scor 40
Compilator cpp Status done
Runda Arhiva educationala Marime 0.77 kb
#include <fstream>
using namespace std;
ifstream fin ("algsort.in");
ofstream fout ("algsort.out");

int v[500002],c[500002],i,n;

void inter (int a, int m, int b) {

    int i=a, j=m+1, k=a-1;
    while (i<=m && j<=b) {
        if (v[i]<v[j])
            c[++k]=v[i++];
            else
            c[++k]=v[j++];
    }
    for (;i<=m;i++)
        c[++k]=v[i];
    for (;j<=b;j++)
        c[++k]=v[j];
    for (i=1;i<=b;i++)
        v[i]=c[i];
}

void sorteaza (int a,int b){
    if (a==b)
        return;
    int m=(a+b)/2;
    sorteaza (a,m);
    sorteaza (m+1,b);
    inter (a,m,b);
}

int main () {

    fin>>n;
    for (i=1;i<=n;i++)
        fin>>v[i];
    sorteaza (1,n);

    for (i=1;i<=n;i++)
        fout<<v[i]<<" ";

    return 0;
}