Cod sursa(job #1029156)

Utilizator SieRRa95FMI Stratulat Madalin-Gabriel SieRRa95 Data 15 noiembrie 2013 01:28:45
Problema Sortare prin comparare Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.83 kb
#include<iostream>
#include<fstream>
using namespace std;
int v[500000],r[500000];
void merge(int stg,int dr){
    int i=stg, j=(stg+dr)/2+1, u=0;

    if(stg!=dr){
        merge(stg,(dr+stg)/2);
        merge((stg+dr)/2+1,dr);
    }

    while(i<=(stg+dr)/2&&j<=dr){
        if(v[i]<=v[j]){
            r[++u]=v[i];
            i++;
        }
        else {
            r[++u]=v[j];
            j++;
        }
    }
    while(i<=(stg+dr)/2){
        r[++u]=v[i];
        i++;
    }
    while(j<=dr){
        r[++u]=v[j];
        j++;
    }
    for(i=stg;i<=dr;i++)
        v[i]=r[i-stg+1];
}
int main(){
    ifstream f("algsort.in");
    ofstream g("algsort.out");
    int n,i;
    f>>n;
    for(i=1;i<=n;i++)
        f>>v[i];
    merge(1,n);
    for(i=1;i<=n;i++)
        g<<v[i]<<" ";

    return 0;
}