Cod sursa(job #1324940)

Utilizator deea101Andreea deea101 Data 22 ianuarie 2015 22:41:33
Problema Sortare prin comparare Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.67 kb
using namespace std;

#define NMAX 500001
int v[NMAX],res[NMAX];
void mergesort(int v[], int S, int F)
{
    if(S==F) return;
    
    int mid=S+(F-S)/2;
    mergesort(v,S,mid);
    mergesort(v,mid+1,F);

    int piv=mid+1,aux=S,i;

    for(i=S;i<=F;i++)
    {
        if(piv>F || (S<=mid && v[S]<=v[piv]))
            res[i]=v[S++];
        else res[i]=v[piv++];
    }

    for(i=aux;i<=F;i++)
        v[i]=res[i];
}

#include <fstream>
ifstream f("algsort.in");
ofstream g("algsort.out");
int main()
{
    int N;
    f>>N;
    int i;
    for(i=1;i<=N;i++)
        f>>v[i];
     
    mergesort(v,1,N);
 
    for(i=1;i<=N;i++)
        g<<v[i]<<' ';
}