Quick actions

cmd+k|ctrl+k

Navigation

Languages

Расчёска

Snippet info

Language

C

Visibility

public

Author

amatov

Created

2016-12-06T13:18:42Z

Updated

2016-12-06T13:18:42Z

#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;
        }
}
INFO