Cod sursa(job #1280770)

Utilizator AndyCatrunaCatruna Andy AndyCatruna Data 2 decembrie 2014 14:14:49
Problema Sortare prin comparare Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.83 kb
#include <fstream>
using namespace std;
ifstream fin("algsort.in");
ofstream fout("algsort.out");
int i,n,v[500001],c[500001],j,u,p;
void interclaseaza(int p,int m,int u){
   int i=p,j=m+1,k=p-1;
    while(i<=m && j<=u){
        if(v[i]<v[j]){
            c[++k]=v[i++];
        }
        else{
            c[++k]=v[j++];
        }

    }
    for(;i<=m;i++){
        c[++k]=v[i];
    }
    for(;j<=u;j++){
        c[++k]=v[j];
    }
    for(i=p;i<=u;i++){
        v[i]=c[i];
    }
}
void sorteaza(int p,int u){
    if(p<u){
        int m=(p+u)/2;
        sorteaza(p,m);
        sorteaza(m+1,u);
        interclaseaza(p,m,u);
    }

}

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