From 9b07edf73f95c522ff5a15aad95db03733254b0d Mon Sep 17 00:00:00 2001 From: Atreyo69 Date: Wed, 20 Oct 2021 23:20:05 +0530 Subject: [PATCH] added a c code for shell sort --- shellsort.c | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 shellsort.c diff --git a/shellsort.c b/shellsort.c new file mode 100644 index 0000000..186c92c --- /dev/null +++ b/shellsort.c @@ -0,0 +1,26 @@ +#include +void shellSort(int array[], int n) { + for (int interval = n / 2; interval > 0; interval /= 2) { + for (int i = interval; i < n; i += 1) { + int temp = array[i]; + int j; + for (j = i; j >= interval && array[j - interval] > temp; j -= interval) { + array[j] = array[j - interval]; + } + array[j] = temp; + } + } +} +void printArray(int array[], int size) { + for (int i = 0; i < size; ++i) { + printf("%d ", array[i]); + } + printf("\n"); +} +int main() { + int data[] = {9, 8, 3, 7, 5, 6, 4, 1}; + int size = sizeof(data) / sizeof(data[0]); + shellSort(data, size); + printf("Sorted array: \n"); + printArray(data, size); +} \ No newline at end of file