Cod sursa(job #1022935)

Utilizator Andrei_x94Duca Andrei Andrei_x94 Data 6 noiembrie 2013 10:59:53
Problema Sortare prin comparare Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.81 kb
#include<iostream>
#include<fstream>


using namespace std;

int v[500001],b[500001];

void merge(int l,int m,int r)
{
    int p=l,q=m+1,k=l-1,i;
    while(p<=m && q<=r)
        if(v[p]<v[q])
            b[++k]=v[p++];
        else
            b[++k]=v[q++];
    while(p<=m)
        b[++k]=v[p++];
    while(q<=r)
        b[++k]=v[q++];
    for(i=l;i<=r;i++)
        v[i]=b[i];
}
 
     
void mergesort (int l,int r)
{
    int m;
    m=(l+r)/2;
    if(l<r)
    {
        mergesort(l,m);
        mergesort(m+1,r);
        merge(l,m,r);
    }
}
int main()
{
    int n,i;
    ifstream fcin("algsort.in");
    ofstream fcout("algsort.out");
    fcin>>n;
    for(i=1;i<=n;i++)
        fcin>>v[i];
    mergesort(1,n);
    for(i=1;i<=n;i++)
        fcout<<v[i]<<" ";
    return 0;
}