Cod sursa(job #1250139)

Utilizator diana-t95FMI Tudoreanu Diana Elena diana-t95 Data 27 octombrie 2014 20:28:40
Problema Sortare prin comparare Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.97 kb
#include <fstream>
#include<iostream>
using namespace std;
long int v[500001], w[500001];
int N;
void citire()
{
    fstream f("algsort.in");
    f>>N;
    int i;
    for (i=1;i<=N;i++)
        f>>v[i];

}
void mergesort(int st, int dr)
{
    if (st<dr)

    {
        int i, j, k, mijl=(st+dr)/2;
        mergesort(st, mijl);
        mergesort(mijl+1, dr);
        i = st, j = mijl + 1;
        k = st;
        while (i <= mijl && j <= dr)
        {
            if (v[i] < v[j])
                w[k++] = v[i++];
            else
                w[k++] = v[j++];
        }
        while (i <= mijl)
            w[k++] = v[i++];
        while (j <= dr)
            w[k++] = v[j++];
        for (k = st; k <= dr; k++)
            v[k] = w[k];
    }
}
void afisare()
{
    ofstream g("algsort.out");
    for (int i=1;i<=N;i++)
        g<<v[i]<<' ';
    g<<'\n';
    g.close();

}
int main()
{
    citire();
    mergesort(1, N);
    afisare();
}