Pagini recente » Cod sursa (job #2398150) | Cod sursa (job #2389655) | Cod sursa (job #3163005) | Cod sursa (job #694665) | Cod sursa (job #240083)
Cod sursa(job #240083)
/*
Shell Sort
*/
#include <stdio.h>
#define N 1000100
int v[N];
void shellsort(int n){
int i, j, h, a;
h=0;
while (h<=n)
h=3*h+1;
while (h!=1){
h/=3;
for (i=h+1;i<n;++i){
a=v[i];
j=i;
while (v[j-h]>a){
v[j]=v[j-h];
j-=h;
if (j<=h)
break;
}
v[j]=a;
}
}
}
int main(){
int i,n;
freopen("algsort.in","r",stdin);
freopen("algsort.out","w",stdout);
scanf("%d",&n);
for (i=1;i<=n;++i)
scanf("%d",&v[i]);
shellsort(n);
for (i=1;i<=n;++i)
printf("%d ",v[i]);
return 0;
}