Cod sursa(job #1673880)

Utilizator AndreiTACAndrei Cristian AndreiTAC Data 4 aprilie 2016 10:38:24
Problema Sortare prin comparare Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 1.12 kb
#include <fstream>

using namespace std;

void ms(int l,int r,int *v)
{
    if(l==r)
        return;
    int m;
    m=(l+r)/2;
    ms(l,m,v);
    ms(m+1,r,v);
    int b[r+1],i,j=-1,k;
    for(i=l;i<=r;i++)
        {
            b[i]=*(v+i);
        }
    i=l;
    j=m+1;
    k=l;
    while(i<=m && j<=r)
        {
            if(b[i]<b[j])
                {
                    *(v+k)=b[i];
                    i++;
                    k++;
                }
            else
                {
                    *(v+k)=b[j];
                    j++;
                    k++;
                }
        }
    while(j<=r)
        {
            *(v+k)=b[j];
            j++;
            k++;
        }
    while(i<=m)
        {
            *(v+k)=b[i];
            i++;
            k++;
        }
}
int main()
{
    ifstream in("algsort.in");
    ofstream out("algsort.out");
    int n;
    in>>n;
    int i,v[n];
    for(i=0;i<n;i++)
        {
            in>>v[i];
        }
    ms(0,n-1,&v[0]);
    for(i=0;i<n;i++)
        {
            out<<v[i]<<" ";
        }
    return 0;
}