From a166d36ba049d14254ddd4f426451879e4075d24 Mon Sep 17 00:00:00 2001 From: Steven Schronk Date: Tue, 1 Dec 2009 18:53:29 -0600 Subject: [PATCH] Added working example of shell sort. --- shell_sort.c | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 shell_sort.c diff --git a/shell_sort.c b/shell_sort.c new file mode 100644 index 0000000..ff8db48 --- /dev/null +++ b/shell_sort.c @@ -0,0 +1,43 @@ +/* + +Invented in 1959 by D. L. Shell + +Sorts an array of integers + +From Page 60 & 61. + +*/ + +#include + +void shellsort(int v[], int n) +{ + int gap, i, j, temp; + + for(gap = n/2; gap > 0; gap /=2) + { + for(i = gap; i < n; i++) + { + for(j = i - gap; j >=0 && v[j]>v[j+gap]; j-=gap) + { + temp = v[j]; + v[j] = v[j+gap]; + v[j+gap] = temp; + } + } + } +} + +int main() +{ + int data[10] = { 9, 12, 54, 90, 0, 100, 65, 32, 54, 81}; + int i; + + for(i = 0; i < 10; ++i) { printf("%d\n", data[i]); } + + shellsort(data, 10); + + for(i = 0; i < 10; ++i) { printf("%d\n", data[i]); } + + return 0; +} -- 2.11.4.GIT