Cod sursa(job #371362)

Utilizator nicolaetitus12Nicolae Titus nicolaetitus12 Data 5 decembrie 2009 00:09:04
Problema Sortare prin comparare Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.45 kb
#include <stdio.h>
#define N 500001
int sir[N];
int main ()
{freopen("algsort.in","r",stdin);
 int i,n,j,h,t,k;
 scanf("%d",&n);
 for (i=0;i<n;i++)
 {scanf("%d",&sir[i]);
 }

 freopen("algsort.out","w",stdout);
 for (h=3;h<=n;h=h*2+1);
 do
 {h/=2;
  for (i=h;i<n;i++)
  {t=sir[i];
   for(k=i;k>=h&&sir[k-h]>t;k-=h)
   {sir[k]=sir[k-h];
   }
   sir[k]=t;
  }
 }
 while(h!=1);
 for (i=0;i<n;i++)
 {printf("%d ",sir[i]);
 }
 return 0;
}