Cod sursa(job #1019880)

Utilizator sassu1994Sassu Dragos sassu1994 Data 1 noiembrie 2013 02:29:42
Problema Sortare prin comparare Scor 20
Compilator cpp Status done
Runda Arhiva educationala Marime 1.1 kb
#include <fstream>



using namespace std;
ifstream in("algsort.in");
ofstream out("algsort.out");
int v[10],aux[10],n;

void interclasare(int a,int b)
{
    int i,j,m=(a+b)/2,nr=1;
    i=a;
    for(j=m+1;a<=m&&j<=b;)
    {
        if(v[a]<v[j])
        {
            aux[nr]=v[a];
            nr++;
            a++;
        }
        else
        {
            aux[nr]=v[j];
            j++;
            nr++;
        }
    }
    if(a<=m)
        for(;a<=m;a++)
        {
            aux[nr]=v[a];
            nr++;
        }
    if(j<=b)
        for(;j<=b;j++)
        {
            aux[nr]=v[j];
            nr++;
        }
    a=i;
    for(j=1;j<nr;j++)
    {
        v[a]=aux[j];
        a++;
    }
}
void mergesort(int s,int d)
{
    int m=(s+d)/2;
    if (s==d||s>d)
        return;
    mergesort(s,m);
    mergesort(m+1,d);
    interclasare(s,d);
}



void citire()
{
    int i;
    in>>n;
    for(i=1;i<=n;i++)
        in>>v[i];
}

int main()
{
    citire();
    mergesort(1,n);
    for(int i=1;i<=n;i++)
        out<<v[i]<<" ";
    return 0;
}