#include <stdio.h>
// BaseType - любой перечисляемый тип
// typedef int BaseType - пример
typedef int b_type;
void shell_sort(b_type *A, unsigned N);
int main(void) {
printf("Hello World!\n");
int arr[] = {3, 4, 2, 6, 8, 7, 9, 1, 5};
int SIZE = sizeof arr / sizeof(arr[0]);
shell_sort(arr, SIZE);
for (int i = 0; i < SIZE; i ++) printf("%d, ", arr[i]);
return 0;
}
void shell_sort(b_type *arr, unsigned N) {
b_type t;
for(unsigned k = N/2; k > 0; k /= 2)
for(unsigned i = k; i < N; i += 1) {
t = arr[i];
unsigned j;
for(j = i; j >= k; j -= k) {
if(t < arr[j-k])
arr[j] = arr[j-k];
else
break;
}
arr[j] = t;
}
}