Cod sursa(job #1565546)

Utilizator adimiclaus15Miclaus Adrian Stefan adimiclaus15 Data 10 ianuarie 2016 22:41:03
Problema Sortare prin comparare Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 1.03 kb
#include <iostream>
#include <fstream>
using namespace std;
int a[500001],i,n;
void inter(int s,int d,int m)
{
    int i,j,k,b[500001];
    i=s;
    j=m+1;
    k=1;
    while(i<=m && j<=d)
    {
        if(a[i]<a[j])
        {
            b[k]=a[i];
            i=i+1;
            k=k+1;
        }
        else
        {
            b[k]=a[j];
            k=k+1;
            j=j+1;
        }
    }
    while(i<=m)
    {
        b[k]=a[i];
        k=k+1;
        i=i+1;
    }
    while(j<=d)
    {
        b[k]=a[j];
        k=k+1;
        j=j+1;
    }
    k=1;
    for(i=s;i<=d;i++)
    {
        a[i]=b[k];
        k=k+1;
    }
}
void msort(int s,int d)
{
    int m;
    if(s<d)
    {
        m=(s+d)/2;
        msort(s,m);
        msort(m+1,d);
        inter(s,d,m);
    }
}
int main()
{
    ifstream f("algsort.in");
    ofstream g("algsort.out");
    f>>n;
    for(i=1;i<=n;i++)
    {
        f>>a[i];
    }
    msort(1,n);
    for(i=1;i<=n;i++)
        g<<a[i]<<" ";
    return 0;
}