#include <stdio.h>

void shellsort(int array[], int elemente)
{
 int i,j,temp,n;

 n=elemente;
 for(; n>0; n/=3)    /*Distanz-Folge für n*/
   for(i=n+1; i<=elemente; i++)
     {
       temp=array[i];
       for(j=i; j>n && array[j-n]>temp; j-=n)
          array[j]=array[j-n];
       array[j]=temp;
     }
}


int main()
{
 int i;
 /*Unser Array zum sortieren*/
 int test_array[] = { 0, 5, 2, 7, 9, 1, 4, 3, 8, 6 };
 int N = sizeof(test_array)/sizeof(int);

 shellsort(test_array, N-1);

 for(i=0; i<N; i++)
   printf("%d ",test_array[i]);
 printf("\n");

 return 0;
}