Cod sursa(job #1280624)

Utilizator robx12lnLinca Robert robx12ln Data 2 decembrie 2014 11:40:28
Problema Sortare prin comparare Scor 80
Compilator cpp Status done
Runda Arhiva educationala Marime 0.81 kb

#include<fstream>
using namespace std;
ifstream fin("algsort.in");
ofstream fout("algsort.out");
long long v[500003],n,i,j,x[500003],m,k;
void interclasez(int p,int m,int u){
    k=p-1;
    i=p;
    j=m+1;
    while(i<=m && j<=u){
        if(v[i]<v[j]){
            x[++k]=v[i++];
        }else{
            x[++k]=v[j++];
        }
    }
    for(;i<=m;i++){
        x[++k]=v[i];
    }
    for(;j<=u;j++){
        x[++k]=v[j];
    }
    for(i=p;i<=u;i++){
        v[i]=x[i];
    }
}
void sortez(int p, int u){
    if(p<u){
        int m=(p+u)/2;
        sortez(p,m);
        sortez(m+1,u);
        interclasez(p,m,u);
    }
}
int main(){
    fin>>n;
    for(i=1;i<=n;i++){
        fin>>v[i];
    }
    sortez(1,n);
    for(i=1;i<=n;i++){
        fout<<v[i]<<" ";
    }
    return 0;
}