Cod sursa(job #1540119)

Utilizator NicolaalexandraNicola Alexandra Mihaela Nicolaalexandra Data 2 decembrie 2015 10:30:03
Problema Sortare prin comparare Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.94 kb
#include <fstream>

using namespace std;

int n,i,v[500001],w[500001];


void interclaseaza(int st,int mid, int dr){
    int i,j,k;

    i = st;
    j = mid+1;
    k = st-1;
    while (i<=mid && j<=dr){
        if (v[i] < v[j]){
            w[++k] = v[i];
            i++;
        }
        else{
            w[++k] = v[j];
            j++;
        }
    }
    for (;i<=mid;i++)
        w[++k] = v[i];
    for (;j<=dr;j++)
        w[++k] = v[j];
    for (i=st;i<=dr;i++)
        v[i] = w[i];
}

void sorteaza (int st,int dr){
    int mid;
    if (st < dr){
        mid = (st+dr)/2;
        sorteaza (st,mid);
        sorteaza (mid+1, dr);
        interclaseaza (st,mid,dr);
    }

}



ifstream fin ("algsort.in");

ofstream fout ("algsort.out");

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