#include void shellsort(int data[], int n) { int *delta, k, i, t, dk, j; k = n; delta = (int *) malloc(sizeof(int) * (n / 2)); i = 0; do { (1); delta[i ++ ] = k; } while ((2)); i = 0; while ((dk = delta[i]) > 0) { for (k = delta[i]; k < n; ++ k) if ((3)) { t = data[k]; for (j = k - dk; j >= 0 && t < data[j]; j -= dk) data[j + dk] = data[j]; (4); } ++ i; } }