Cod sursa(job #1049285)

Utilizator iordache.bogdanIordache Ioan-Bogdan iordache.bogdan Data 7 decembrie 2013 10:08:34
Problema Sortare prin comparare Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.83 kb
#include <fstream>
using namespace std;

int n;
int v[500005];

void inter(int a, int m, int b){
    int c[500005];
    int i=a;
    int j=m+1;
    int 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(){
    int i;
    ifstream f("algsort.in");
    ofstream g("algsort.out");
    f>>n;
    for(i=1;i<=n;i++)
        f>>v[i];
    sorteaza(1,n);
    for(i=1;i<=n;i++)
        g<<v[i]<<" ";
    g<<"\n";
    f.close();
    g.close();
    return 0;
}