Cod sursa(job #1393566)

Utilizator bogdannitescuBogdan Nitescu bogdannitescu Data 19 martie 2015 16:16:02
Problema Sortare prin comparare Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.74 kb
#include <iostream>
#include <fstream>
using namespace std;
 ifstream f("algsort.in");
 ofstream g("algsort.out");
int a[500005],b[5000005];

void interclasare(int st, int mij, int dr)
{
    int i,j,k,t;
    for(i=st;i<=dr;i++) b[i]=a[i];
    i=st;
    j=mij+1;
    k=st-1;
    while(i<=mij&&j<=dr)
        if(b[i]<b[j]) a[++k]=b[i++];
        else a[++k]=b[j++];
    for(t=i;t<=mij;t++) a[++k]=b[t];
    for(t=j;t<=dr;t++) a[++k]=b[t];
}

void sortare(int st, int dr)
{
    int mij;
    if(st!=dr)
    {
        mij=(st+dr)/2;
        sortare(st,mij);
        sortare(mij+1,dr);
        interclasare(st,mij,dr);
    }
}

int main()
{int i,n;
    f>>n;
    for(i=1;i<=n;i++) f>>a[i];
    sortare(1,n);
    for(i=1;i<=n;i++) g<<a[i]<<" ";


    return 0;
}