Cod sursa(job #2233181)

Utilizator Mitza444Vidrean Mihai Mitza444 Data 22 august 2018 14:44:27
Problema Sortare prin comparare Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 1.02 kb
#include <fstream>
#include<iostream>

using namespace std;
int V[500001],R[500001];
void Div(int x, int y){
    int m,i,j,k;
    if(y-x==0)
        return;
    m=(x+y)/2;
    Div(x,m);
    Div(m+1,y);
    i=x;j=m+1;
    k=x;
    while(k<=y){
            if(i<=m && j<=y){
                    if(V[i]<V[j]){
                            R[k]=V[i];k++;i++;
                    }
                    else{
                            R[k]=V[j];k++;j++;
                    }
            }
            else if(i>m){
                    R[k]=V[j];k++;j++;
            }
            else {
                    R[k]=V[i];k++;i++;
            }
    }
    for(i=x;i<=y;i++){
            V[i]=R[i];
    }
    return;
}
int main()
{
    int N,i;
    ifstream f("algsort.in");
    f>>N;
    for(i=1;i<=N;++i){
        f>>V[i];
    }
    f.close();
    Div(1,N);
    ofstream g("algsort.out");
    for(i=1;i<=N;i++){
        g<<V[i];
        if(i<N)
            g<<" ";
    }
    g.close();
    return 0;
}