Cod sursa(job #513326)

Utilizator b_polarAgape Mihai b_polar Data 15 decembrie 2010 18:11:29
Problema Sortare prin comparare Scor 0
Compilator c Status done
Runda Arhiva educationala Marime 0.59 kb
//de Mihai Agape
#include <stdio.h>

int N,numere[500005],numerec[500005],i;
void rezolvare(int,int);

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

    for(scanf("%d",&N);i<N;i++)scanf("%d",&numere[i]);
    rezolvare(0,N-1);
    for(i=0;i<N;i++)printf("%d ",numere[i]);
}

void rezolvare(int st,int dr)
{
    if(st==dr)return;
    int m=(st+dr)>>1,i,j,k; 
    rezolvare(st,m),rezolvare(m+1,dr);
    for(i=st,j=m+1,k=st;i<=m||j<=dr;k++)
        numerec[k]=(j>dr||(i<=m&&numere[i]<numere[j]))?numere[i++]:numere[j++];
    for(i=st;i<=dr;i++)numere[i]=numerec[i];
}