Cod sursa(job #1036136)

Utilizator cioionutFMI Ionut Ciocoiu cioionut Data 18 noiembrie 2013 23:40:26
Problema Sortare prin comparare Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.82 kb
#include<iostream>
#include<fstream>
using namespace std;
int v[500001];
void m(int p,int u,int mij)
{
    int i,j,k,a[250002],b[250002];
    for (i=1,k=p;k<=mij;i++,k++) a[i]=v[k];
    for (j=1;k<=u;j++,k++) b[j]=v[k];
    int x=1,y=1;k=p;
    while(x<i&&y<j)
        {
            if (a[x]<b[y]) v[k]=a[x++];
                else v[k]=b[y++];
            k++;}
    while(x<i) {v[k]=a[x++];k++;}
    while(y<j) {v[k]=b[y++];k++;};
}
void msort(int p,int u)
{
    if((u-p)>=1)
    {
        int mij=(p+u)/2;
        msort(p,mij);
        msort(mij+1,u);
        m(p,u,mij);
    }
}
int main()
{
    ifstream f("algsort.in");
    ofstream g("algsort.out");
    int i,n;
    f>>n;
    for (i=1;i<=n;i++) f>>v[i];
    msort(1,n);
    for(i=1;i<=n;i++) g<<v[i];
    f.close();g.close();
    return 0;
}