Cod sursa(job #1542894)

Utilizator catu_bogdan_99Catu Bogdan catu_bogdan_99 Data 5 decembrie 2015 19:33:39
Problema Sortare prin comparare Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.76 kb
#include <cstdio>
using namespace std;

int v[500005];
int t[500005];

void sorta( int st, int dr ){

    int i, j, k, mid;

    if( st == dr ) return ;

    mid  = ( st + dr ) / 2;
    sorta( st, mid );
    sorta( mid + 1, dr );

    k = st;
    i = st;
    j = mid + 1;

    while( i <= mid || j <= dr )
        if( ( j > dr ) || ( i <= mid && v[i] <= v[j] ) ) t[k++] = v[i++];
        else t[k++] = v[j++];

    for( i = st; i <= dr; ++i )
        v[i] = t[i];

}

int main()
{

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

    int n, i;

    scanf("%d",&n);
    for( i = 1; i <= n; ++i ) scanf("%d",&v[i]);

    sorta( 1, n );
    for( i = 1; i <= n; ++i ) printf("%d ",v[i]);


    return 0;
}