Cod sursa(job #1320580)

Utilizator claudiu.gatinaFMI Claudiu Gatina claudiu.gatina Data 18 ianuarie 2015 07:04:13
Problema Sortare prin comparare Scor 20
Compilator cpp Status done
Runda Arhiva educationala Marime 0.79 kb
#include <cstdio>

int v[100],a[100],n;

void mergesort(int st, int dr)
{
    if(st==dr)
        return;
    int m=(st+dr)/2,i,j,k;
    mergesort(st,m);
    mergesort(m+1,dr);
    j=m+1;
    k=st;
    for(i=st;i<=m;i++)
    {
        while(v[j]<v[i] && j<=dr)
        {
            a[k]=v[j];
            k++;
            j++;
        }
        a[k]=v[i];
        k++;
    }
    while(j<=dr)
    {
        a[k]=v[j];
        k++;
        j++;
    }
    for(i=st;i<=dr;i++)
        v[i]=a[i];
}

int main()
{
    freopen("algsort.in", "r", stdin);
    freopen("algsort.out", "w", stdout);

    int i;
    scanf("%d ", &n);
    for(i=1;i<=n;i++)
        scanf("%d ", &v[i]);
    mergesort(1,n);
    for(i=1;i<=n;i++)
        printf("%d ", v[i]);
    return 0;
}