Cod sursa(job #1713937)

Utilizator Victor24Vasiesiu Victor Victor24 Data 6 iunie 2016 22:41:35
Problema Sortare prin comparare Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.99 kb
#include <fstream>
using namespace std;

int n, i1, i2, i, a[500005];

ifstream f ("algsort.in");
ofstream g ("algsort.out");

void mergesort ( int a[], int n )
{
    if (n==1)
    {
        return;
    }

    mergesort (a, n/2);
    mergesort (a+n/2, n-n/2);

    int b[n+2];

    i1=1;
    i2 = n/2+1;

    i =  1;
    while (i1 <= n/2 && i2 <= n){
        if (a[i1] < a[i2]) {
            b[i] = a[i1];
            i1++;
            i++;
        }
        else {
            b[i] = a[i2];
            i2++;
            i++;
        }
    }
    while (i1 <= n/2) {
        b[i] = a[i1];
        i++;
        i1++;
    }
    while (i2 <= n) {
        b[i] = a[i2];
        i++;
        i2++;
    }
    for ( i = 1; i <=n; i++) {
        a[i] = b[i];
    }
}

int main ()

{
    f>>n;

    for (i=1; i<=n; i++)
    {
        f>>a[i];
    }


    mergesort ( a, n );

    for (i=1; i<=n; i++)
    {
        g<<a[i]<<" ";
    }


    return 0;
}