Cod sursa(job #1581195)

Utilizator AlexEnacheEnache Alexandru-Paul AlexEnache Data 26 ianuarie 2016 17:32:52
Problema Sortare prin comparare Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 1.09 kb
#include <fstream>
using namespace std;
ifstream f("algsort.in");
ofstream g("algsort.out");
int n,v[500009],b[500010],k;
void interclasare (int v[],int b[],int p, int q, int r)
{
    int i,j,k;
    k=0;
    i=p;
    j=q+1;
    while(i<=q&&j<=r)
    {
        k++;
        if(v[i]<v[j])
        {
            b[k]=v[i];
            i++;
        }
        else
        {
            b[k]=v[j];
            j++;
        }
    }
    while(i<=q)
    {
        k++;
        b[k]=v[i];
        i++;
    }
    while(j<=r)
    {
        k++;
        b[k]=v[j];
        j++;
    }
    i=p;
    j=1;
    while(i<=r)
    {
        v[i]=b[j];
        i++;
        j++;
    }


}
void mergesort( int v[],int b[],int p, int r)
{
    int q;
    if(p<r)
    {
        q=(p+r)/2;
        mergesort (v,b,p,q);
        mergesort (v,b,q+1,r);
        interclasare(v,b,p,q,r);
    }
}
int main ()
{
    unsigned int i,j,aux;
    f>>n;
    for(i=1;i<=n;i++)
        f>>v[i];
    mergesort (v,b,1,n);
    for(k=1;k<=n;k++)
        g<<v[k]<<' ';


    return 0;
}