Cod sursa(job #1426772)

Utilizator ButnaruButnaru George Butnaru Data 30 aprilie 2015 17:09:01
Problema Sortare prin comparare Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.56 kb
#include <stdio.h>
int n,i,c[500001],t[500001];
void merge_sort(int st,int dr)
{
    int m,k,i,j;
    if (st==dr) return;
    m=(st+dr)/2;
    merge_sort(st,m);
    merge_sort(m+1,dr);
    for (i=st,j=m+1,k=1;i<=m || j<=dr;)
    if ((t[i]<t[j] && i<=m) || j>dr) c[k++]=t[i++]; else c[k++]=t[j++];
    for (i=st,k=1;i<=dr;i++) t[i]=c[k++];
}
int main(){
freopen("algsort.in","r",stdin);
freopen("algsort.out","w",stdout);
scanf("%d",&n);
for (i=1;i<=n;i++) scanf("%d",&t[i]);
merge_sort(1,n);
for (i=1;i<=n;i++)
    printf("%d ",t[i]);
return 0;
}