Cod sursa(job #1049301)

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

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

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=a;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;
}